feat(proto): unified OpenAPI bundle via sebuf v0.11.0 (#3341)

* feat(proto): generate unified worldmonitor.openapi.yaml bundle

Adds a third protoc-gen-openapiv3 invocation that merges every service
into a single docs/api/worldmonitor.openapi.yaml spanning all 68 RPCs,
using the new bundle support shipped in sebuf 0.11.0
(SebastienMelki/sebuf#158).

Per-service YAML/JSON files are untouched and continue to back the
Mintlify docs in docs/docs.json. The bundle runs with strategy: all and
bundle_only=true so only the aggregate file is emitted, avoiding
duplicate-output conflicts with the existing per-service generator.

Requires protoc-gen-openapiv3 >= v0.11.0 locally:
  go install github.com/SebastienMelki/sebuf/cmd/protoc-gen-openapiv3@v0.11.0

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(proto): bump sebuf to v0.11.0 and document unified OpenAPI bundle

- Makefile: SEBUF_VERSION v0.7.0 → v0.11.0 (required for bundle support).
- proto/buf.gen.yaml: point bundle_server at https://api.worldmonitor.app.
- CONTRIBUTING.md: new "OpenAPI Output" section covering per-service specs
  vs the unified worldmonitor.openapi.yaml bundle, plus a note that all
  three sebuf plugins must be installed from the pinned version.
- AGENTS.md: clarify that `make generate` also produces the unified spec
  and requires sebuf v0.11.0.
- CHANGELOG.md: Unreleased entry announcing the bundle and version bump.

Also regenerates the bundle with the updated server URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(codegen): regenerate TS client/server with sebuf v0.11.0

Mechanical output of the bumped protoc-gen-ts-client and
protoc-gen-ts-server. Two behavioral improvements roll in from sebuf:

- Proto enum fields now use the proper `*_UNSPECIFIED` sentinel in
  default-value checks instead of the empty string, so generated
  query-string serializers correctly omit enum params only when they
  actually equal the proto default.
- `repeated string` query params now serialize via
  `forEach(v => params.append(...))` instead of being coerced through
  `String(req.field)`, matching the existing `parseStringArray()`
  contract on the server side.

All files also drop the `// @ts-nocheck` header that earlier sebuf
versions emitted — 0.11.0 output type-checks cleanly under our tsconfig.

No hand edits. Reproduce with `make install-plugins && make generate`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(proto): bump sebuf v0.11.0 → v0.11.1, realign tests with repeated-param wire format

- Bump SEBUF_VERSION to v0.11.1, pulling in the OpenAPI fix for repeated
  scalar query params (SebastienMelki/sebuf#161). `repeated string` fields
  now emit `type: array` + `items.type: string` + `style: form` +
  `explode: true` instead of `type: string`, so SDK generators consuming
  the unified bundle produce correct array clients.
- Regenerate all 12 OpenAPI specs (unified bundle + Aviation, Economic,
  Infrastructure, Market, Trade per-service). TS client/server codegen
  is byte-identical to v0.11.0 — only the OpenAPI emitter was out of sync.
- Update three tests that asserted the pre-v0.11 comma-joined wire format
  (`symbols=AAPL,MSFT`) to match the current repeated-param form
  (`symbols=AAPL&symbols=MSFT`) produced by `params.append(...)`:
  - tests/market-service-symbol-casing.test.mjs (2 cases: getAll)
  - tests/stock-analysis-history.test.mts
  - tests/stock-backtest.test.mts

Locally: test:data 6619/6619 pass, typecheck clean, lint exit 0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
This commit is contained in:
Sebastien Melki
2026-04-23 16:24:03 +03:00
committed by GitHub
parent df91e99142
commit fcbb8bc0a1
87 changed files with 21622 additions and 210 deletions

View File

@@ -57,7 +57,7 @@ npm run typecheck:api # Typecheck API layer separately
npm run test:data # Run unit/integration tests
npm run test:sidecar # Run sidecar + API handler tests
npm run test:e2e # Run all Playwright E2E tests
make generate # Regenerate proto stubs (requires buf + sebuf plugins)
make generate # Regenerate proto stubs + per-service & unified OpenAPI specs (requires buf + sebuf v0.11.0 plugins)
```
## Architecture Rules

View File

@@ -6,6 +6,7 @@ All notable changes to World Monitor are documented here.
### Added
- **Unified OpenAPI bundle** — `docs/api/worldmonitor.openapi.yaml` is now emitted alongside per-service specs, merging every WorldMonitor RPC into a single OpenAPI 3.1 document (190 operations). Powered by sebuf v0.11.1's origin-level bundle support ([SebastienMelki/sebuf#158](https://github.com/SebastienMelki/sebuf/issues/158)). Bumps `SEBUF_VERSION` in the Makefile from v0.7.0 to v0.11.1 — rerun `make install-plugins` after pulling.
- **Route Explorer**: standalone full-screen modal (CMD+K) for planning shipments between any two countries. Includes Current/Alternatives/Land/Impact tabs, keyboard-first navigation, URL state sharing, strategic-product trade data, dependency flags, and free-tier blur with public route highlight (#2980, #2982, #2994, #2996, #2997, #2998)
- US Treasury customs revenue in Trade Policy panel with monthly data, FYTD year-over-year comparison, and revenue spike highlighting (#1663)
- Security advisories gold standard migration: Railway cron seed fetches 24 government RSS feeds hourly, Vercel reads Redis only (#1637)

View File

@@ -234,6 +234,19 @@ make install-buf # Install buf CLI (requires Go)
make install-plugins # Install sebuf protoc-gen plugins (requires Go)
```
The pinned sebuf version is set by `SEBUF_VERSION` in the `Makefile` (currently **v0.11.1**). All three plugins — `protoc-gen-ts-client`, `protoc-gen-ts-server`, `protoc-gen-openapiv3` — must be installed from the same sebuf release. If you see codegen drift after pulling, rerun `make install-plugins` to resync.
### OpenAPI Output
`make generate` (i.e. `cd proto && buf generate`) produces:
| File | Purpose |
| --- | --- |
| `docs/api/{Service}.openapi.yaml` / `.json` | Per-service specs — referenced individually by Mintlify in `docs/docs.json` |
| `docs/api/worldmonitor.openapi.yaml` | **Unified bundle** spanning every service (sebuf ≥ v0.11.0) — use this for external consumers, API explorers, or anywhere you want a single spec covering all RPCs |
The unified bundle is emitted by a third `protoc-gen-openapiv3` invocation in `proto/buf.gen.yaml` using `bundle=true`, `bundle_only=true`, and `strategy: all`. Regenerate alongside the per-service files; do not edit by hand.
## Adding Data Sources
To add a new data layer to the map:

View File

@@ -14,7 +14,7 @@ GO_INSTALL := $(GO_PROXY) $(GO_PRIVATE) go install
# Required tool versions
BUF_VERSION := v1.64.0
SEBUF_VERSION := v0.7.0
SEBUF_VERSION := v0.11.1
help: ## Show this help message
@echo 'Usage: make [target]'
@@ -55,7 +55,6 @@ lint: ## Lint protobuf files
generate: clean ## Generate code from proto definitions
@mkdir -p $(GEN_CLIENT_DIR) $(GEN_SERVER_DIR) $(DOCS_API_DIR)
cd $(PROTO_DIR) && buf generate
@find $(GEN_CLIENT_DIR) $(GEN_SERVER_DIR) -name '*.ts' -exec sed -i.bak '1s;^;// @ts-nocheck\n;' {} \; -exec rm -f {}.bak \;
@echo "Code generation complete!"
breaking: ## Check for breaking changes against main

File diff suppressed because one or more lines are too long

View File

@@ -67,8 +67,12 @@ paths:
in: query
description: IATA airport codes to query (e.g., ["IST", "ESB", "LHR"]).
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -146,8 +150,12 @@ paths:
in: query
description: IATA airport codes to aggregate carrier metrics from.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: min_flights
in: query
description: 'Minimum number of flights required to include a carrier (default: 1).'
@@ -426,8 +434,12 @@ paths:
in: query
description: Entities to filter by (airline names, airport codes, route strings).
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: window_hours
in: query
description: Time window in hours to look back (1-168).
@@ -515,8 +527,12 @@ paths:
in: query
description: Airline IATA codes to filter by (e.g. ["BA", "AA"]).
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: sort_by
in: query
description: 'Sort order: CHEAPEST, DURATION, DEPARTURE_TIME, or ARRIVAL_TIME.'
@@ -616,8 +632,12 @@ paths:
in: query
description: Airline IATA codes to filter by (e.g. ["BA", "AA"]).
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: sort_by_price
in: query
description: Whether to sort results by price (lowest first).

File diff suppressed because one or more lines are too long

View File

@@ -114,8 +114,12 @@ paths:
in: query
description: Optional commodity filter. Empty returns all tracked commodities.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -175,8 +179,12 @@ paths:
Energy source codes to query (e.g., "SUN", "WND", "COL").
Empty returns all tracked sources (SUN, WND, COL).
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: years
in: query
description: Number of years of historical data. Default 20 if not set.

File diff suppressed because one or more lines are too long

View File

@@ -224,8 +224,12 @@ paths:
- name: keys
in: query
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response

File diff suppressed because one or more lines are too long

View File

@@ -15,8 +15,12 @@ paths:
in: query
description: Ticker symbols to retrieve (e.g., ["AAPL", "^GSPC"]). Empty returns defaults.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -48,8 +52,12 @@ paths:
in: query
description: Cryptocurrency IDs to retrieve (CoinGecko IDs). Empty returns defaults.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -81,8 +89,12 @@ paths:
in: query
description: Commodity symbols to retrieve (Yahoo symbols). Empty returns defaults.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -147,8 +159,12 @@ paths:
in: query
description: CoinGecko IDs to retrieve (e.g. "tether,usd-coin"). Empty returns defaults.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
responses:
"200":
description: Successful response
@@ -306,8 +322,12 @@ paths:
- name: symbols
in: query
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: limit_per_symbol
in: query
required: false
@@ -392,8 +412,12 @@ paths:
- name: symbols
in: query
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: eval_window_days
in: query
required: false

File diff suppressed because one or more lines are too long

View File

@@ -15,8 +15,12 @@ paths:
in: query
description: WTO member codes to filter by. Empty = all.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: limit
in: query
description: Max results to return (server caps at 100).
@@ -153,8 +157,12 @@ paths:
in: query
description: WTO member codes to filter by. Empty = all.
required: false
style: form
explode: true
schema:
type: string
type: array
items:
type: string
- name: measure_type
in: query
description: 'Filter by measure type: "SPS", "TBT", or empty for both.'

File diff suppressed because it is too large Load Diff

View File

@@ -29,3 +29,19 @@ plugins:
out: ../docs/api
opt:
- format=json
# Unified bundle spanning all WorldMonitor services (sebuf >= 0.11.0).
# Emits docs/api/worldmonitor.openapi.yaml alongside the per-service files.
- local: protoc-gen-openapiv3
out: ../docs/api
strategy: all
opt:
- bundle=true
- bundle_only=true
- bundle_output=worldmonitor.openapi.yaml
- bundle_title=WorldMonitor API
- bundle_version=1.0.0
- bundle_description=Unified OpenAPI bundle spanning all WorldMonitor services.
- bundle_server=https://api.worldmonitor.app
- bundle_contact_name=WorldMonitor
- bundle_contact_email=support@worldmonitor.app

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/aviation/v1/service.proto
@@ -396,8 +395,8 @@ export class AviationServiceClient {
const params = new URLSearchParams();
if (req.pageSize != null && req.pageSize !== 0) params.set("page_size", String(req.pageSize));
if (req.cursor != null && req.cursor !== "") params.set("cursor", String(req.cursor));
if (req.region != null && req.region !== "") params.set("region", String(req.region));
if (req.minSeverity != null && req.minSeverity !== "") params.set("min_severity", String(req.minSeverity));
if (req.region != null && req.region !== "AIRPORT_REGION_UNSPECIFIED") params.set("region", String(req.region));
if (req.minSeverity != null && req.minSeverity !== "FLIGHT_DELAY_SEVERITY_UNSPECIFIED") params.set("min_severity", String(req.minSeverity));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -422,7 +421,7 @@ export class AviationServiceClient {
async getAirportOpsSummary(req: GetAirportOpsSummaryRequest, options?: AviationServiceCallOptions): Promise<GetAirportOpsSummaryResponse> {
let path = "/api/aviation/v1/get-airport-ops-summary";
const params = new URLSearchParams();
if (req.airports != null && req.airports !== "") params.set("airports", String(req.airports));
if (req.airports && req.airports.length > 0) req.airports.forEach(v => params.append("airports", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -448,7 +447,7 @@ export class AviationServiceClient {
let path = "/api/aviation/v1/list-airport-flights";
const params = new URLSearchParams();
if (req.airport != null && req.airport !== "") params.set("airport", String(req.airport));
if (req.direction != null && req.direction !== "") params.set("direction", String(req.direction));
if (req.direction != null && req.direction !== "FLIGHT_DIRECTION_UNSPECIFIED") params.set("direction", String(req.direction));
if (req.limit != null && req.limit !== 0) params.set("limit", String(req.limit));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -474,7 +473,7 @@ export class AviationServiceClient {
async getCarrierOps(req: GetCarrierOpsRequest, options?: AviationServiceCallOptions): Promise<GetCarrierOpsResponse> {
let path = "/api/aviation/v1/get-carrier-ops";
const params = new URLSearchParams();
if (req.airports != null && req.airports !== "") params.set("airports", String(req.airports));
if (req.airports && req.airports.length > 0) req.airports.forEach(v => params.append("airports", v));
if (req.minFlights != null && req.minFlights !== 0) params.set("min_flights", String(req.minFlights));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -588,7 +587,7 @@ export class AviationServiceClient {
if (req.departureDate != null && req.departureDate !== "") params.set("departure_date", String(req.departureDate));
if (req.returnDate != null && req.returnDate !== "") params.set("return_date", String(req.returnDate));
if (req.adults != null && req.adults !== 0) params.set("adults", String(req.adults));
if (req.cabin != null && req.cabin !== "") params.set("cabin", String(req.cabin));
if (req.cabin != null && req.cabin !== "CABIN_CLASS_UNSPECIFIED") params.set("cabin", String(req.cabin));
if (req.nonstopOnly) params.set("nonstop_only", String(req.nonstopOnly));
if (req.maxResults != null && req.maxResults !== 0) params.set("max_results", String(req.maxResults));
if (req.currency != null && req.currency !== "") params.set("currency", String(req.currency));
@@ -617,7 +616,7 @@ export class AviationServiceClient {
async listAviationNews(req: ListAviationNewsRequest, options?: AviationServiceCallOptions): Promise<ListAviationNewsResponse> {
let path = "/api/aviation/v1/list-aviation-news";
const params = new URLSearchParams();
if (req.entities != null && req.entities !== "") params.set("entities", String(req.entities));
if (req.entities && req.entities.length > 0) req.entities.forEach(v => params.append("entities", v));
if (req.windowHours != null && req.windowHours !== 0) params.set("window_hours", String(req.windowHours));
if (req.maxItems != null && req.maxItems !== 0) params.set("max_items", String(req.maxItems));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -651,7 +650,7 @@ export class AviationServiceClient {
if (req.cabinClass != null && req.cabinClass !== "") params.set("cabin_class", String(req.cabinClass));
if (req.maxStops != null && req.maxStops !== "") params.set("max_stops", String(req.maxStops));
if (req.departureWindow != null && req.departureWindow !== "") params.set("departure_window", String(req.departureWindow));
if (req.airlines != null && req.airlines !== "") params.set("airlines", String(req.airlines));
if (req.airlines && req.airlines.length > 0) req.airlines.forEach(v => params.append("airlines", v));
if (req.sortBy != null && req.sortBy !== "") params.set("sort_by", String(req.sortBy));
if (req.passengers != null && req.passengers !== 0) params.set("passengers", String(req.passengers));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -687,7 +686,7 @@ export class AviationServiceClient {
if (req.cabinClass != null && req.cabinClass !== "") params.set("cabin_class", String(req.cabinClass));
if (req.maxStops != null && req.maxStops !== "") params.set("max_stops", String(req.maxStops));
if (req.departureWindow != null && req.departureWindow !== "") params.set("departure_window", String(req.departureWindow));
if (req.airlines != null && req.airlines !== "") params.set("airlines", String(req.airlines));
if (req.airlines && req.airlines.length > 0) req.airlines.forEach(v => params.append("airlines", v));
if (req.sortByPrice) params.set("sort_by_price", String(req.sortByPrice));
if (req.passengers != null && req.passengers !== 0) params.set("passengers", String(req.passengers));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/climate/v1/service.proto
@@ -205,7 +204,7 @@ export class ClimateServiceClient {
const params = new URLSearchParams();
if (req.pageSize != null && req.pageSize !== 0) params.set("page_size", String(req.pageSize));
if (req.cursor != null && req.cursor !== "") params.set("cursor", String(req.cursor));
if (req.minSeverity != null && req.minSeverity !== "") params.set("min_severity", String(req.minSeverity));
if (req.minSeverity != null && req.minSeverity !== "ANOMALY_SEVERITY_UNSPECIFIED") params.set("min_severity", String(req.minSeverity));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -253,7 +252,7 @@ export class ClimateServiceClient {
return await resp.json() as ListClimateDisastersResponse;
}
async getCo2Monitoring(req: GetCo2MonitoringRequest, options?: ClimateServiceCallOptions): Promise<GetCo2MonitoringResponse> {
async getCo2Monitoring(_req: GetCo2MonitoringRequest, options?: ClimateServiceCallOptions): Promise<GetCo2MonitoringResponse> {
let path = "/api/climate/v1/get-co2-monitoring";
const url = this.baseURL + path;
@@ -276,7 +275,7 @@ export class ClimateServiceClient {
return await resp.json() as GetCo2MonitoringResponse;
}
async getOceanIceData(req: GetOceanIceDataRequest, options?: ClimateServiceCallOptions): Promise<GetOceanIceDataResponse> {
async getOceanIceData(_req: GetOceanIceDataRequest, options?: ClimateServiceCallOptions): Promise<GetOceanIceDataResponse> {
let path = "/api/climate/v1/get-ocean-ice-data";
const url = this.baseURL + path;
@@ -299,7 +298,7 @@ export class ClimateServiceClient {
return await resp.json() as GetOceanIceDataResponse;
}
async listAirQualityData(req: ListAirQualityDataRequest, options?: ClimateServiceCallOptions): Promise<ListAirQualityDataResponse> {
async listAirQualityData(_req: ListAirQualityDataRequest, options?: ClimateServiceCallOptions): Promise<ListAirQualityDataResponse> {
let path = "/api/climate/v1/list-air-quality-data";
const url = this.baseURL + path;
@@ -322,7 +321,7 @@ export class ClimateServiceClient {
return await resp.json() as ListAirQualityDataResponse;
}
async listClimateNews(req: ListClimateNewsRequest, options?: ClimateServiceCallOptions): Promise<ListClimateNewsResponse> {
async listClimateNews(_req: ListClimateNewsRequest, options?: ClimateServiceCallOptions): Promise<ListClimateNewsResponse> {
let path = "/api/climate/v1/list-climate-news";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/conflict/v1/service.proto
@@ -247,7 +246,7 @@ export class ConflictServiceClient {
return await resp.json() as GetHumanitarianSummaryResponse;
}
async listIranEvents(req: ListIranEventsRequest, options?: ConflictServiceCallOptions): Promise<ListIranEventsResponse> {
async listIranEvents(_req: ListIranEventsRequest, options?: ConflictServiceCallOptions): Promise<ListIranEventsResponse> {
let path = "/api/conflict/v1/list-iran-events";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/consumer_prices/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/cyber/v1/service.proto
@@ -105,9 +104,9 @@ export class CyberServiceClient {
if (req.end != null && req.end !== 0) params.set("end", String(req.end));
if (req.pageSize != null && req.pageSize !== 0) params.set("page_size", String(req.pageSize));
if (req.cursor != null && req.cursor !== "") params.set("cursor", String(req.cursor));
if (req.type != null && req.type !== "") params.set("type", String(req.type));
if (req.source != null && req.source !== "") params.set("source", String(req.source));
if (req.minSeverity != null && req.minSeverity !== "") params.set("min_severity", String(req.minSeverity));
if (req.type != null && req.type !== "CYBER_THREAT_TYPE_UNSPECIFIED") params.set("type", String(req.type));
if (req.source != null && req.source !== "CYBER_THREAT_SOURCE_UNSPECIFIED") params.set("source", String(req.source));
if (req.minSeverity != null && req.minSeverity !== "CRITICALITY_LEVEL_UNSPECIFIED") params.set("min_severity", String(req.minSeverity));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/displacement/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/economic/v1/service.proto
@@ -797,7 +796,7 @@ export class EconomicServiceClient {
async getEnergyPrices(req: GetEnergyPricesRequest, options?: EconomicServiceCallOptions): Promise<GetEnergyPricesResponse> {
let path = "/api/economic/v1/get-energy-prices";
const params = new URLSearchParams();
if (req.commodities != null && req.commodities !== "") params.set("commodities", String(req.commodities));
if (req.commodities && req.commodities.length > 0) req.commodities.forEach(v => params.append("commodities", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -819,7 +818,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEnergyPricesResponse;
}
async getMacroSignals(req: GetMacroSignalsRequest, options?: EconomicServiceCallOptions): Promise<GetMacroSignalsResponse> {
async getMacroSignals(_req: GetMacroSignalsRequest, options?: EconomicServiceCallOptions): Promise<GetMacroSignalsResponse> {
let path = "/api/economic/v1/get-macro-signals";
const url = this.baseURL + path;
@@ -845,7 +844,7 @@ export class EconomicServiceClient {
async getEnergyCapacity(req: GetEnergyCapacityRequest, options?: EconomicServiceCallOptions): Promise<GetEnergyCapacityResponse> {
let path = "/api/economic/v1/get-energy-capacity";
const params = new URLSearchParams();
if (req.energySources != null && req.energySources !== "") params.set("energy_sources", String(req.energySources));
if (req.energySources && req.energySources.length > 0) req.energySources.forEach(v => params.append("energy_sources", v));
if (req.years != null && req.years !== 0) params.set("years", String(req.years));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -868,7 +867,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEnergyCapacityResponse;
}
async getBisPolicyRates(req: GetBisPolicyRatesRequest, options?: EconomicServiceCallOptions): Promise<GetBisPolicyRatesResponse> {
async getBisPolicyRates(_req: GetBisPolicyRatesRequest, options?: EconomicServiceCallOptions): Promise<GetBisPolicyRatesResponse> {
let path = "/api/economic/v1/get-bis-policy-rates";
const url = this.baseURL + path;
@@ -891,7 +890,7 @@ export class EconomicServiceClient {
return await resp.json() as GetBisPolicyRatesResponse;
}
async getBisExchangeRates(req: GetBisExchangeRatesRequest, options?: EconomicServiceCallOptions): Promise<GetBisExchangeRatesResponse> {
async getBisExchangeRates(_req: GetBisExchangeRatesRequest, options?: EconomicServiceCallOptions): Promise<GetBisExchangeRatesResponse> {
let path = "/api/economic/v1/get-bis-exchange-rates";
const url = this.baseURL + path;
@@ -914,7 +913,7 @@ export class EconomicServiceClient {
return await resp.json() as GetBisExchangeRatesResponse;
}
async getBisCredit(req: GetBisCreditRequest, options?: EconomicServiceCallOptions): Promise<GetBisCreditResponse> {
async getBisCredit(_req: GetBisCreditRequest, options?: EconomicServiceCallOptions): Promise<GetBisCreditResponse> {
let path = "/api/economic/v1/get-bis-credit";
const url = this.baseURL + path;
@@ -961,7 +960,7 @@ export class EconomicServiceClient {
return await resp.json() as GetFredSeriesBatchResponse;
}
async listGroceryBasketPrices(req: ListGroceryBasketPricesRequest, options?: EconomicServiceCallOptions): Promise<ListGroceryBasketPricesResponse> {
async listGroceryBasketPrices(_req: ListGroceryBasketPricesRequest, options?: EconomicServiceCallOptions): Promise<ListGroceryBasketPricesResponse> {
let path = "/api/economic/v1/list-grocery-basket-prices";
const url = this.baseURL + path;
@@ -984,7 +983,7 @@ export class EconomicServiceClient {
return await resp.json() as ListGroceryBasketPricesResponse;
}
async listBigMacPrices(req: ListBigMacPricesRequest, options?: EconomicServiceCallOptions): Promise<ListBigMacPricesResponse> {
async listBigMacPrices(_req: ListBigMacPricesRequest, options?: EconomicServiceCallOptions): Promise<ListBigMacPricesResponse> {
let path = "/api/economic/v1/list-bigmac-prices";
const url = this.baseURL + path;
@@ -1007,7 +1006,7 @@ export class EconomicServiceClient {
return await resp.json() as ListBigMacPricesResponse;
}
async getNationalDebt(req: GetNationalDebtRequest, options?: EconomicServiceCallOptions): Promise<GetNationalDebtResponse> {
async getNationalDebt(_req: GetNationalDebtRequest, options?: EconomicServiceCallOptions): Promise<GetNationalDebtResponse> {
let path = "/api/economic/v1/get-national-debt";
const url = this.baseURL + path;
@@ -1030,7 +1029,7 @@ export class EconomicServiceClient {
return await resp.json() as GetNationalDebtResponse;
}
async listFuelPrices(req: ListFuelPricesRequest, options?: EconomicServiceCallOptions): Promise<ListFuelPricesResponse> {
async listFuelPrices(_req: ListFuelPricesRequest, options?: EconomicServiceCallOptions): Promise<ListFuelPricesResponse> {
let path = "/api/economic/v1/list-fuel-prices";
const url = this.baseURL + path;
@@ -1105,7 +1104,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEconomicCalendarResponse;
}
async getCrudeInventories(req: GetCrudeInventoriesRequest, options?: EconomicServiceCallOptions): Promise<GetCrudeInventoriesResponse> {
async getCrudeInventories(_req: GetCrudeInventoriesRequest, options?: EconomicServiceCallOptions): Promise<GetCrudeInventoriesResponse> {
let path = "/api/economic/v1/get-crude-inventories";
const url = this.baseURL + path;
@@ -1128,7 +1127,7 @@ export class EconomicServiceClient {
return await resp.json() as GetCrudeInventoriesResponse;
}
async getNatGasStorage(req: GetNatGasStorageRequest, options?: EconomicServiceCallOptions): Promise<GetNatGasStorageResponse> {
async getNatGasStorage(_req: GetNatGasStorageRequest, options?: EconomicServiceCallOptions): Promise<GetNatGasStorageResponse> {
let path = "/api/economic/v1/get-nat-gas-storage";
const url = this.baseURL + path;
@@ -1151,7 +1150,7 @@ export class EconomicServiceClient {
return await resp.json() as GetNatGasStorageResponse;
}
async getEcbFxRates(req: GetEcbFxRatesRequest, options?: EconomicServiceCallOptions): Promise<GetEcbFxRatesResponse> {
async getEcbFxRates(_req: GetEcbFxRatesRequest, options?: EconomicServiceCallOptions): Promise<GetEcbFxRatesResponse> {
let path = "/api/economic/v1/get-ecb-fx-rates";
const url = this.baseURL + path;
@@ -1174,7 +1173,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEcbFxRatesResponse;
}
async getEurostatCountryData(req: GetEurostatCountryDataRequest, options?: EconomicServiceCallOptions): Promise<GetEurostatCountryDataResponse> {
async getEurostatCountryData(_req: GetEurostatCountryDataRequest, options?: EconomicServiceCallOptions): Promise<GetEurostatCountryDataResponse> {
let path = "/api/economic/v1/get-eurostat-country-data";
const url = this.baseURL + path;
@@ -1197,7 +1196,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEurostatCountryDataResponse;
}
async getEuGasStorage(req: GetEuGasStorageRequest, options?: EconomicServiceCallOptions): Promise<GetEuGasStorageResponse> {
async getEuGasStorage(_req: GetEuGasStorageRequest, options?: EconomicServiceCallOptions): Promise<GetEuGasStorageResponse> {
let path = "/api/economic/v1/get-eu-gas-storage";
const url = this.baseURL + path;
@@ -1220,7 +1219,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEuGasStorageResponse;
}
async getEuYieldCurve(req: GetEuYieldCurveRequest, options?: EconomicServiceCallOptions): Promise<GetEuYieldCurveResponse> {
async getEuYieldCurve(_req: GetEuYieldCurveRequest, options?: EconomicServiceCallOptions): Promise<GetEuYieldCurveResponse> {
let path = "/api/economic/v1/get-eu-yield-curve";
const url = this.baseURL + path;
@@ -1243,7 +1242,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEuYieldCurveResponse;
}
async getEuFsi(req: GetEuFsiRequest, options?: EconomicServiceCallOptions): Promise<GetEuFsiResponse> {
async getEuFsi(_req: GetEuFsiRequest, options?: EconomicServiceCallOptions): Promise<GetEuFsiResponse> {
let path = "/api/economic/v1/get-eu-fsi";
const url = this.baseURL + path;
@@ -1266,7 +1265,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEuFsiResponse;
}
async getEconomicStress(req: GetEconomicStressRequest, options?: EconomicServiceCallOptions): Promise<GetEconomicStressResponse> {
async getEconomicStress(_req: GetEconomicStressRequest, options?: EconomicServiceCallOptions): Promise<GetEconomicStressResponse> {
let path = "/api/economic/v1/get-economic-stress";
const url = this.baseURL + path;
@@ -1289,7 +1288,7 @@ export class EconomicServiceClient {
return await resp.json() as GetEconomicStressResponse;
}
async getFaoFoodPriceIndex(req: GetFaoFoodPriceIndexRequest, options?: EconomicServiceCallOptions): Promise<GetFaoFoodPriceIndexResponse> {
async getFaoFoodPriceIndex(_req: GetFaoFoodPriceIndexRequest, options?: EconomicServiceCallOptions): Promise<GetFaoFoodPriceIndexResponse> {
let path = "/api/economic/v1/get-fao-food-price-index";
const url = this.baseURL + path;
@@ -1312,7 +1311,7 @@ export class EconomicServiceClient {
return await resp.json() as GetFaoFoodPriceIndexResponse;
}
async getOilStocksAnalysis(req: GetOilStocksAnalysisRequest, options?: EconomicServiceCallOptions): Promise<GetOilStocksAnalysisResponse> {
async getOilStocksAnalysis(_req: GetOilStocksAnalysisRequest, options?: EconomicServiceCallOptions): Promise<GetOilStocksAnalysisResponse> {
let path = "/api/economic/v1/get-oil-stocks-analysis";
const url = this.baseURL + path;
@@ -1335,7 +1334,7 @@ export class EconomicServiceClient {
return await resp.json() as GetOilStocksAnalysisResponse;
}
async getOilInventories(req: GetOilInventoriesRequest, options?: EconomicServiceCallOptions): Promise<GetOilInventoriesResponse> {
async getOilInventories(_req: GetOilInventoriesRequest, options?: EconomicServiceCallOptions): Promise<GetOilInventoriesResponse> {
let path = "/api/economic/v1/get-oil-inventories";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/forecast/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/giving/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/health/v1/service.proto
@@ -94,7 +93,7 @@ export class HealthServiceClient {
this.defaultHeaders = { ...options?.defaultHeaders };
}
async listDiseaseOutbreaks(req: ListDiseaseOutbreaksRequest, options?: HealthServiceCallOptions): Promise<ListDiseaseOutbreaksResponse> {
async listDiseaseOutbreaks(_req: ListDiseaseOutbreaksRequest, options?: HealthServiceCallOptions): Promise<ListDiseaseOutbreaksResponse> {
let path = "/api/health/v1/list-disease-outbreaks";
const url = this.baseURL + path;
@@ -117,7 +116,7 @@ export class HealthServiceClient {
return await resp.json() as ListDiseaseOutbreaksResponse;
}
async listAirQualityAlerts(req: ListAirQualityAlertsRequest, options?: HealthServiceCallOptions): Promise<ListAirQualityAlertsResponse> {
async listAirQualityAlerts(_req: ListAirQualityAlertsRequest, options?: HealthServiceCallOptions): Promise<ListAirQualityAlertsResponse> {
let path = "/api/health/v1/list-air-quality-alerts";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/imagery/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/infrastructure/v1/service.proto
@@ -307,7 +306,7 @@ export class InfrastructureServiceClient {
async listServiceStatuses(req: ListServiceStatusesRequest, options?: InfrastructureServiceCallOptions): Promise<ListServiceStatusesResponse> {
let path = "/api/infrastructure/v1/list-service-statuses";
const params = new URLSearchParams();
if (req.status != null && req.status !== "") params.set("status", String(req.status));
if (req.status != null && req.status !== "SERVICE_OPERATIONAL_STATUS_UNSPECIFIED") params.set("status", String(req.status));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -356,7 +355,7 @@ export class InfrastructureServiceClient {
return await resp.json() as GetTemporalBaselineResponse;
}
async getIpGeo(req: GetIpGeoRequest, options?: InfrastructureServiceCallOptions): Promise<GetIpGeoResponse> {
async getIpGeo(_req: GetIpGeoRequest, options?: InfrastructureServiceCallOptions): Promise<GetIpGeoResponse> {
let path = "/api/infrastructure/v1/get-ip-geo";
const url = this.baseURL + path;
@@ -409,7 +408,7 @@ export class InfrastructureServiceClient {
let path = "/api/infrastructure/v1/get-bootstrap-data";
const params = new URLSearchParams();
if (req.tier != null && req.tier !== "") params.set("tier", String(req.tier));
if (req.keys != null && req.keys !== "") params.set("keys", String(req.keys));
if (req.keys && req.keys.length > 0) req.keys.forEach(v => params.append("keys", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -455,7 +454,7 @@ export class InfrastructureServiceClient {
return await resp.json() as RecordBaselineSnapshotResponse;
}
async getCableHealth(req: GetCableHealthRequest, options?: InfrastructureServiceCallOptions): Promise<GetCableHealthResponse> {
async getCableHealth(_req: GetCableHealthRequest, options?: InfrastructureServiceCallOptions): Promise<GetCableHealthResponse> {
let path = "/api/infrastructure/v1/get-cable-health";
const url = this.baseURL + path;
@@ -478,7 +477,7 @@ export class InfrastructureServiceClient {
return await resp.json() as GetCableHealthResponse;
}
async listTemporalAnomalies(req: ListTemporalAnomaliesRequest, options?: InfrastructureServiceCallOptions): Promise<ListTemporalAnomaliesResponse> {
async listTemporalAnomalies(_req: ListTemporalAnomaliesRequest, options?: InfrastructureServiceCallOptions): Promise<ListTemporalAnomaliesResponse> {
let path = "/api/infrastructure/v1/list-temporal-anomalies";
const url = this.baseURL + path;
@@ -501,7 +500,7 @@ export class InfrastructureServiceClient {
return await resp.json() as ListTemporalAnomaliesResponse;
}
async listInternetDdosAttacks(req: ListInternetDdosAttacksRequest, options?: InfrastructureServiceCallOptions): Promise<ListInternetDdosAttacksResponse> {
async listInternetDdosAttacks(_req: ListInternetDdosAttacksRequest, options?: InfrastructureServiceCallOptions): Promise<ListInternetDdosAttacksResponse> {
let path = "/api/infrastructure/v1/list-internet-ddos-attacks";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/intelligence/v1/service.proto
@@ -1154,7 +1153,7 @@ export class IntelligenceServiceClient {
async listOrefAlerts(req: ListOrefAlertsRequest, options?: IntelligenceServiceCallOptions): Promise<ListOrefAlertsResponse> {
let path = "/api/intelligence/v1/list-oref-alerts";
const params = new URLSearchParams();
if (req.mode != null && req.mode !== "") params.set("mode", String(req.mode));
if (req.mode != null && req.mode !== "MODE_UNSPECIFIED") params.set("mode", String(req.mode));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -1280,7 +1279,7 @@ export class IntelligenceServiceClient {
return await resp.json() as GetCountryFactsResponse;
}
async listSecurityAdvisories(req: ListSecurityAdvisoriesRequest, options?: IntelligenceServiceCallOptions): Promise<ListSecurityAdvisoriesResponse> {
async listSecurityAdvisories(_req: ListSecurityAdvisoriesRequest, options?: IntelligenceServiceCallOptions): Promise<ListSecurityAdvisoriesResponse> {
let path = "/api/intelligence/v1/list-security-advisories";
const url = this.baseURL + path;
@@ -1328,7 +1327,7 @@ export class IntelligenceServiceClient {
return await resp.json() as GetGdeltTopicTimelineResponse;
}
async listCrossSourceSignals(req: ListCrossSourceSignalsRequest, options?: IntelligenceServiceCallOptions): Promise<ListCrossSourceSignalsResponse> {
async listCrossSourceSignals(_req: ListCrossSourceSignalsRequest, options?: IntelligenceServiceCallOptions): Promise<ListCrossSourceSignalsResponse> {
let path = "/api/intelligence/v1/list-cross-source-signals";
const url = this.baseURL + path;
@@ -1376,7 +1375,7 @@ export class IntelligenceServiceClient {
return await resp.json() as ListMarketImplicationsResponse;
}
async getSocialVelocity(req: GetSocialVelocityRequest, options?: IntelligenceServiceCallOptions): Promise<GetSocialVelocityResponse> {
async getSocialVelocity(_req: GetSocialVelocityRequest, options?: IntelligenceServiceCallOptions): Promise<GetSocialVelocityResponse> {
let path = "/api/intelligence/v1/get-social-velocity";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/leads/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/maritime/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/market/v1/service.proto
@@ -699,7 +698,7 @@ export class MarketServiceClient {
async listMarketQuotes(req: ListMarketQuotesRequest, options?: MarketServiceCallOptions): Promise<ListMarketQuotesResponse> {
let path = "/api/market/v1/list-market-quotes";
const params = new URLSearchParams();
if (req.symbols != null && req.symbols !== "") params.set("symbols", String(req.symbols));
if (req.symbols && req.symbols.length > 0) req.symbols.forEach(v => params.append("symbols", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -724,7 +723,7 @@ export class MarketServiceClient {
async listCryptoQuotes(req: ListCryptoQuotesRequest, options?: MarketServiceCallOptions): Promise<ListCryptoQuotesResponse> {
let path = "/api/market/v1/list-crypto-quotes";
const params = new URLSearchParams();
if (req.ids != null && req.ids !== "") params.set("ids", String(req.ids));
if (req.ids && req.ids.length > 0) req.ids.forEach(v => params.append("ids", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -749,7 +748,7 @@ export class MarketServiceClient {
async listCommodityQuotes(req: ListCommodityQuotesRequest, options?: MarketServiceCallOptions): Promise<ListCommodityQuotesResponse> {
let path = "/api/market/v1/list-commodity-quotes";
const params = new URLSearchParams();
if (req.symbols != null && req.symbols !== "") params.set("symbols", String(req.symbols));
if (req.symbols && req.symbols.length > 0) req.symbols.forEach(v => params.append("symbols", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -799,7 +798,7 @@ export class MarketServiceClient {
async listStablecoinMarkets(req: ListStablecoinMarketsRequest, options?: MarketServiceCallOptions): Promise<ListStablecoinMarketsResponse> {
let path = "/api/market/v1/list-stablecoin-markets";
const params = new URLSearchParams();
if (req.coins != null && req.coins !== "") params.set("coins", String(req.coins));
if (req.coins && req.coins.length > 0) req.coins.forEach(v => params.append("coins", v));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -821,7 +820,7 @@ export class MarketServiceClient {
return await resp.json() as ListStablecoinMarketsResponse;
}
async listEtfFlows(req: ListEtfFlowsRequest, options?: MarketServiceCallOptions): Promise<ListEtfFlowsResponse> {
async listEtfFlows(_req: ListEtfFlowsRequest, options?: MarketServiceCallOptions): Promise<ListEtfFlowsResponse> {
let path = "/api/market/v1/list-etf-flows";
const url = this.baseURL + path;
@@ -869,7 +868,7 @@ export class MarketServiceClient {
return await resp.json() as GetCountryStockIndexResponse;
}
async listGulfQuotes(req: ListGulfQuotesRequest, options?: MarketServiceCallOptions): Promise<ListGulfQuotesResponse> {
async listGulfQuotes(_req: ListGulfQuotesRequest, options?: MarketServiceCallOptions): Promise<ListGulfQuotesResponse> {
let path = "/api/market/v1/list-gulf-quotes";
const url = this.baseURL + path;
@@ -922,7 +921,7 @@ export class MarketServiceClient {
async getStockAnalysisHistory(req: GetStockAnalysisHistoryRequest, options?: MarketServiceCallOptions): Promise<GetStockAnalysisHistoryResponse> {
let path = "/api/market/v1/get-stock-analysis-history";
const params = new URLSearchParams();
if (req.symbols != null && req.symbols !== "") params.set("symbols", String(req.symbols));
if (req.symbols && req.symbols.length > 0) req.symbols.forEach(v => params.append("symbols", v));
if (req.limitPerSymbol != null && req.limitPerSymbol !== 0) params.set("limit_per_symbol", String(req.limitPerSymbol));
if (req.includeNews) params.set("include_news", String(req.includeNews));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -976,7 +975,7 @@ export class MarketServiceClient {
async listStoredStockBacktests(req: ListStoredStockBacktestsRequest, options?: MarketServiceCallOptions): Promise<ListStoredStockBacktestsResponse> {
let path = "/api/market/v1/list-stored-stock-backtests";
const params = new URLSearchParams();
if (req.symbols != null && req.symbols !== "") params.set("symbols", String(req.symbols));
if (req.symbols && req.symbols.length > 0) req.symbols.forEach(v => params.append("symbols", v));
if (req.evalWindowDays != null && req.evalWindowDays !== 0) params.set("eval_window_days", String(req.evalWindowDays));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -999,7 +998,7 @@ export class MarketServiceClient {
return await resp.json() as ListStoredStockBacktestsResponse;
}
async listCryptoSectors(req: ListCryptoSectorsRequest, options?: MarketServiceCallOptions): Promise<ListCryptoSectorsResponse> {
async listCryptoSectors(_req: ListCryptoSectorsRequest, options?: MarketServiceCallOptions): Promise<ListCryptoSectorsResponse> {
let path = "/api/market/v1/list-crypto-sectors";
const url = this.baseURL + path;
@@ -1022,7 +1021,7 @@ export class MarketServiceClient {
return await resp.json() as ListCryptoSectorsResponse;
}
async listDefiTokens(req: ListDefiTokensRequest, options?: MarketServiceCallOptions): Promise<ListDefiTokensResponse> {
async listDefiTokens(_req: ListDefiTokensRequest, options?: MarketServiceCallOptions): Promise<ListDefiTokensResponse> {
let path = "/api/market/v1/list-defi-tokens";
const url = this.baseURL + path;
@@ -1045,7 +1044,7 @@ export class MarketServiceClient {
return await resp.json() as ListDefiTokensResponse;
}
async listAiTokens(req: ListAiTokensRequest, options?: MarketServiceCallOptions): Promise<ListAiTokensResponse> {
async listAiTokens(_req: ListAiTokensRequest, options?: MarketServiceCallOptions): Promise<ListAiTokensResponse> {
let path = "/api/market/v1/list-ai-tokens";
const url = this.baseURL + path;
@@ -1068,7 +1067,7 @@ export class MarketServiceClient {
return await resp.json() as ListAiTokensResponse;
}
async listOtherTokens(req: ListOtherTokensRequest, options?: MarketServiceCallOptions): Promise<ListOtherTokensResponse> {
async listOtherTokens(_req: ListOtherTokensRequest, options?: MarketServiceCallOptions): Promise<ListOtherTokensResponse> {
let path = "/api/market/v1/list-other-tokens";
const url = this.baseURL + path;
@@ -1091,7 +1090,7 @@ export class MarketServiceClient {
return await resp.json() as ListOtherTokensResponse;
}
async getFearGreedIndex(req: GetFearGreedIndexRequest, options?: MarketServiceCallOptions): Promise<GetFearGreedIndexResponse> {
async getFearGreedIndex(_req: GetFearGreedIndexRequest, options?: MarketServiceCallOptions): Promise<GetFearGreedIndexResponse> {
let path = "/api/market/v1/get-fear-greed-index";
const url = this.baseURL + path;
@@ -1140,7 +1139,7 @@ export class MarketServiceClient {
return await resp.json() as ListEarningsCalendarResponse;
}
async getCotPositioning(req: GetCotPositioningRequest, options?: MarketServiceCallOptions): Promise<GetCotPositioningResponse> {
async getCotPositioning(_req: GetCotPositioningRequest, options?: MarketServiceCallOptions): Promise<GetCotPositioningResponse> {
let path = "/api/market/v1/get-cot-positioning";
const url = this.baseURL + path;
@@ -1188,7 +1187,7 @@ export class MarketServiceClient {
return await resp.json() as GetInsiderTransactionsResponse;
}
async getMarketBreadthHistory(req: GetMarketBreadthHistoryRequest, options?: MarketServiceCallOptions): Promise<GetMarketBreadthHistoryResponse> {
async getMarketBreadthHistory(_req: GetMarketBreadthHistoryRequest, options?: MarketServiceCallOptions): Promise<GetMarketBreadthHistoryResponse> {
let path = "/api/market/v1/get-market-breadth-history";
const url = this.baseURL + path;
@@ -1211,7 +1210,7 @@ export class MarketServiceClient {
return await resp.json() as GetMarketBreadthHistoryResponse;
}
async getGoldIntelligence(req: GetGoldIntelligenceRequest, options?: MarketServiceCallOptions): Promise<GetGoldIntelligenceResponse> {
async getGoldIntelligence(_req: GetGoldIntelligenceRequest, options?: MarketServiceCallOptions): Promise<GetGoldIntelligenceResponse> {
let path = "/api/market/v1/get-gold-intelligence";
const url = this.baseURL + path;
@@ -1234,7 +1233,7 @@ export class MarketServiceClient {
return await resp.json() as GetGoldIntelligenceResponse;
}
async getHyperliquidFlow(req: GetHyperliquidFlowRequest, options?: MarketServiceCallOptions): Promise<GetHyperliquidFlowResponse> {
async getHyperliquidFlow(_req: GetHyperliquidFlowRequest, options?: MarketServiceCallOptions): Promise<GetHyperliquidFlowResponse> {
let path = "/api/market/v1/get-hyperliquid-flow";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/military/v1/service.proto
@@ -361,8 +360,8 @@ export class MilitaryServiceClient {
if (req.neLon != null && req.neLon !== 0) params.set("ne_lon", String(req.neLon));
if (req.swLat != null && req.swLat !== 0) params.set("sw_lat", String(req.swLat));
if (req.swLon != null && req.swLon !== 0) params.set("sw_lon", String(req.swLon));
if (req.operator != null && req.operator !== "") params.set("operator", String(req.operator));
if (req.aircraftType != null && req.aircraftType !== "") params.set("aircraft_type", String(req.aircraftType));
if (req.operator != null && req.operator !== "MILITARY_OPERATOR_UNSPECIFIED") params.set("operator", String(req.operator));
if (req.aircraftType != null && req.aircraftType !== "MILITARY_AIRCRAFT_TYPE_UNSPECIFIED") params.set("aircraft_type", String(req.aircraftType));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
const headers: Record<string, string> = {
@@ -458,7 +457,7 @@ export class MilitaryServiceClient {
return await resp.json() as GetAircraftDetailsBatchResponse;
}
async getWingbitsStatus(req: GetWingbitsStatusRequest, options?: MilitaryServiceCallOptions): Promise<GetWingbitsStatusResponse> {
async getWingbitsStatus(_req: GetWingbitsStatusRequest, options?: MilitaryServiceCallOptions): Promise<GetWingbitsStatusResponse> {
let path = "/api/military/v1/get-wingbits-status";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/natural/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/news/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/positive_events/v1/service.proto
@@ -66,7 +65,7 @@ export class PositiveEventsServiceClient {
this.defaultHeaders = { ...options?.defaultHeaders };
}
async listPositiveGeoEvents(req: ListPositiveGeoEventsRequest, options?: PositiveEventsServiceCallOptions): Promise<ListPositiveGeoEventsResponse> {
async listPositiveGeoEvents(_req: ListPositiveGeoEventsRequest, options?: PositiveEventsServiceCallOptions): Promise<ListPositiveGeoEventsResponse> {
let path = "/api/positive-events/v1/list-positive-geo-events";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/prediction/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/radiation/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/research/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/resilience/v1/service.proto
@@ -149,7 +148,7 @@ export class ResilienceServiceClient {
return await resp.json() as GetResilienceScoreResponse;
}
async getResilienceRanking(req: GetResilienceRankingRequest, options?: ResilienceServiceCallOptions): Promise<GetResilienceRankingResponse> {
async getResilienceRanking(_req: GetResilienceRankingRequest, options?: ResilienceServiceCallOptions): Promise<GetResilienceRankingResponse> {
let path = "/api/resilience/v1/get-resilience-ranking";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/sanctions/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/scenario/v1/service.proto
@@ -156,7 +155,7 @@ export class ScenarioServiceClient {
return await resp.json() as GetScenarioStatusResponse;
}
async listScenarioTemplates(req: ListScenarioTemplatesRequest, options?: ScenarioServiceCallOptions): Promise<ListScenarioTemplatesResponse> {
async listScenarioTemplates(_req: ListScenarioTemplatesRequest, options?: ScenarioServiceCallOptions): Promise<ListScenarioTemplatesResponse> {
let path = "/api/scenario/v1/list-scenario-templates";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/seismology/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/shipping/v2/service.proto
@@ -164,7 +163,7 @@ export class ShippingV2ServiceClient {
return await resp.json() as RegisterWebhookResponse;
}
async listWebhooks(req: ListWebhooksRequest, options?: ShippingV2ServiceCallOptions): Promise<ListWebhooksResponse> {
async listWebhooks(_req: ListWebhooksRequest, options?: ShippingV2ServiceCallOptions): Promise<ListWebhooksResponse> {
let path = "/api/v2/shipping/webhooks";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/supply_chain/v1/service.proto
@@ -686,7 +685,7 @@ export class SupplyChainServiceClient {
this.defaultHeaders = { ...options?.defaultHeaders };
}
async getShippingRates(req: GetShippingRatesRequest, options?: SupplyChainServiceCallOptions): Promise<GetShippingRatesResponse> {
async getShippingRates(_req: GetShippingRatesRequest, options?: SupplyChainServiceCallOptions): Promise<GetShippingRatesResponse> {
let path = "/api/supply-chain/v1/get-shipping-rates";
const url = this.baseURL + path;
@@ -709,7 +708,7 @@ export class SupplyChainServiceClient {
return await resp.json() as GetShippingRatesResponse;
}
async getChokepointStatus(req: GetChokepointStatusRequest, options?: SupplyChainServiceCallOptions): Promise<GetChokepointStatusResponse> {
async getChokepointStatus(_req: GetChokepointStatusRequest, options?: SupplyChainServiceCallOptions): Promise<GetChokepointStatusResponse> {
let path = "/api/supply-chain/v1/get-chokepoint-status";
const url = this.baseURL + path;
@@ -757,7 +756,7 @@ export class SupplyChainServiceClient {
return await resp.json() as GetChokepointHistoryResponse;
}
async getCriticalMinerals(req: GetCriticalMineralsRequest, options?: SupplyChainServiceCallOptions): Promise<GetCriticalMineralsResponse> {
async getCriticalMinerals(_req: GetCriticalMineralsRequest, options?: SupplyChainServiceCallOptions): Promise<GetCriticalMineralsResponse> {
let path = "/api/supply-chain/v1/get-critical-minerals";
const url = this.baseURL + path;
@@ -780,7 +779,7 @@ export class SupplyChainServiceClient {
return await resp.json() as GetCriticalMineralsResponse;
}
async getShippingStress(req: GetShippingStressRequest, options?: SupplyChainServiceCallOptions): Promise<GetShippingStressResponse> {
async getShippingStress(_req: GetShippingStressRequest, options?: SupplyChainServiceCallOptions): Promise<GetShippingStressResponse> {
let path = "/api/supply-chain/v1/get-shipping-stress";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/thermal/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/trade/v1/service.proto
@@ -199,7 +198,7 @@ export class TradeServiceClient {
async getTradeRestrictions(req: GetTradeRestrictionsRequest, options?: TradeServiceCallOptions): Promise<GetTradeRestrictionsResponse> {
let path = "/api/trade/v1/get-trade-restrictions";
const params = new URLSearchParams();
if (req.countries != null && req.countries !== "") params.set("countries", String(req.countries));
if (req.countries && req.countries.length > 0) req.countries.forEach(v => params.append("countries", v));
if (req.limit != null && req.limit !== 0) params.set("limit", String(req.limit));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -280,7 +279,7 @@ export class TradeServiceClient {
async getTradeBarriers(req: GetTradeBarriersRequest, options?: TradeServiceCallOptions): Promise<GetTradeBarriersResponse> {
let path = "/api/trade/v1/get-trade-barriers";
const params = new URLSearchParams();
if (req.countries != null && req.countries !== "") params.set("countries", String(req.countries));
if (req.countries && req.countries.length > 0) req.countries.forEach(v => params.append("countries", v));
if (req.measureType != null && req.measureType !== "") params.set("measure_type", String(req.measureType));
if (req.limit != null && req.limit !== 0) params.set("limit", String(req.limit));
const url = this.baseURL + path + (params.toString() ? "?" + params.toString() : "");
@@ -304,7 +303,7 @@ export class TradeServiceClient {
return await resp.json() as GetTradeBarriersResponse;
}
async getCustomsRevenue(req: GetCustomsRevenueRequest, options?: TradeServiceCallOptions): Promise<GetCustomsRevenueResponse> {
async getCustomsRevenue(_req: GetCustomsRevenueRequest, options?: TradeServiceCallOptions): Promise<GetCustomsRevenueResponse> {
let path = "/api/trade/v1/get-customs-revenue";
const url = this.baseURL + path;

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/unrest/v1/service.proto
@@ -126,7 +125,7 @@ export class UnrestServiceClient {
if (req.pageSize != null && req.pageSize !== 0) params.set("page_size", String(req.pageSize));
if (req.cursor != null && req.cursor !== "") params.set("cursor", String(req.cursor));
if (req.country != null && req.country !== "") params.set("country", String(req.country));
if (req.minSeverity != null && req.minSeverity !== "") params.set("min_severity", String(req.minSeverity));
if (req.minSeverity != null && req.minSeverity !== "SEVERITY_LEVEL_UNSPECIFIED") params.set("min_severity", String(req.minSeverity));
if (req.neLat != null && req.neLat !== 0) params.set("ne_lat", String(req.neLat));
if (req.neLon != null && req.neLon !== 0) params.set("ne_lon", String(req.neLon));
if (req.swLat != null && req.swLat !== 0) params.set("sw_lat", String(req.swLat));

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/webcam/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-client. DO NOT EDIT.
// source: worldmonitor/wildfire/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/aviation/v1/service.proto
@@ -417,8 +416,8 @@ export function createAviationServiceRoutes(
const body: ListAirportDelaysRequest = {
pageSize: Number(params.get("page_size") ?? "0"),
cursor: params.get("cursor") ?? "",
region: params.get("region") ?? "",
minSeverity: params.get("min_severity") ?? "",
region: (params.get("region") ?? "AIRPORT_REGION_UNSPECIFIED") as AirportRegion,
minSeverity: (params.get("min_severity") ?? "FLIGHT_DELAY_SEVERITY_UNSPECIFIED") as FlightDelaySeverity,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listAirportDelays", body);
@@ -465,7 +464,7 @@ export function createAviationServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetAirportOpsSummaryRequest = {
airports: params.get("airports") ?? "",
airports: params.getAll("airports"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("getAirportOpsSummary", body);
@@ -513,7 +512,7 @@ export function createAviationServiceRoutes(
const params = url.searchParams;
const body: ListAirportFlightsRequest = {
airport: params.get("airport") ?? "",
direction: params.get("direction") ?? "",
direction: (params.get("direction") ?? "FLIGHT_DIRECTION_UNSPECIFIED") as FlightDirection,
limit: Number(params.get("limit") ?? "0"),
};
if (options?.validateRequest) {
@@ -561,7 +560,7 @@ export function createAviationServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetCarrierOpsRequest = {
airports: params.get("airports") ?? "",
airports: params.getAll("airports"),
minFlights: Number(params.get("min_flights") ?? "0"),
};
if (options?.validateRequest) {
@@ -763,7 +762,7 @@ export function createAviationServiceRoutes(
departureDate: params.get("departure_date") ?? "",
returnDate: params.get("return_date") ?? "",
adults: Number(params.get("adults") ?? "0"),
cabin: params.get("cabin") ?? "",
cabin: (params.get("cabin") ?? "CABIN_CLASS_UNSPECIFIED") as CabinClass,
nonstopOnly: params.get("nonstop_only") === "true",
maxResults: Number(params.get("max_results") ?? "0"),
currency: params.get("currency") ?? "",
@@ -814,7 +813,7 @@ export function createAviationServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListAviationNewsRequest = {
entities: params.get("entities") ?? "",
entities: params.getAll("entities"),
windowHours: Number(params.get("window_hours") ?? "0"),
maxItems: Number(params.get("max_items") ?? "0"),
};
@@ -870,7 +869,7 @@ export function createAviationServiceRoutes(
cabinClass: params.get("cabin_class") ?? "",
maxStops: params.get("max_stops") ?? "",
departureWindow: params.get("departure_window") ?? "",
airlines: params.get("airlines") ?? "",
airlines: params.getAll("airlines"),
sortBy: params.get("sort_by") ?? "",
passengers: Number(params.get("passengers") ?? "0"),
};
@@ -928,7 +927,7 @@ export function createAviationServiceRoutes(
cabinClass: params.get("cabin_class") ?? "",
maxStops: params.get("max_stops") ?? "",
departureWindow: params.get("departure_window") ?? "",
airlines: params.get("airlines") ?? "",
airlines: params.getAll("airlines"),
sortByPrice: params.get("sort_by_price") === "true",
passengers: Number(params.get("passengers") ?? "0"),
};

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/climate/v1/service.proto
@@ -221,7 +220,7 @@ export function createClimateServiceRoutes(
const body: ListClimateAnomaliesRequest = {
pageSize: Number(params.get("page_size") ?? "0"),
cursor: params.get("cursor") ?? "",
minSeverity: params.get("min_severity") ?? "",
minSeverity: (params.get("min_severity") ?? "ANOMALY_SEVERITY_UNSPECIFIED") as AnomalySeverity,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listClimateAnomalies", body);

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/conflict/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/consumer_prices/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/cyber/v1/service.proto
@@ -116,9 +115,9 @@ export function createCyberServiceRoutes(
end: Number(params.get("end") ?? "0"),
pageSize: Number(params.get("page_size") ?? "0"),
cursor: params.get("cursor") ?? "",
type: params.get("type") ?? "",
source: params.get("source") ?? "",
minSeverity: params.get("min_severity") ?? "",
type: (params.get("type") ?? "CYBER_THREAT_TYPE_UNSPECIFIED") as CyberThreatType,
source: (params.get("source") ?? "CYBER_THREAT_SOURCE_UNSPECIFIED") as CyberThreatSource,
minSeverity: (params.get("min_severity") ?? "CRITICALITY_LEVEL_UNSPECIFIED") as CriticalityLevel,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listCyberThreats", body);

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/displacement/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/economic/v1/service.proto
@@ -878,7 +877,7 @@ export function createEconomicServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetEnergyPricesRequest = {
commodities: params.get("commodities") ?? "",
commodities: params.getAll("commodities"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("getEnergyPrices", body);
@@ -962,7 +961,7 @@ export function createEconomicServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetEnergyCapacityRequest = {
energySources: params.get("energy_sources") ?? "",
energySources: params.getAll("energy_sources"),
years: Number(params.get("years") ?? "0"),
};
if (options?.validateRequest) {

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/forecast/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/giving/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/health/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/imagery/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/infrastructure/v1/service.proto
@@ -350,7 +349,7 @@ export function createInfrastructureServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListServiceStatusesRequest = {
status: params.get("status") ?? "",
status: (params.get("status") ?? "SERVICE_OPERATIONAL_STATUS_UNSPECIFIED") as ServiceOperationalStatus,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listServiceStatuses", body);
@@ -532,7 +531,7 @@ export function createInfrastructureServiceRoutes(
const params = url.searchParams;
const body: GetBootstrapDataRequest = {
tier: params.get("tier") ?? "",
keys: params.get("keys") ?? "",
keys: params.getAll("keys"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("getBootstrapData", body);

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/intelligence/v1/service.proto
@@ -1384,7 +1383,7 @@ export function createIntelligenceServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListOrefAlertsRequest = {
mode: params.get("mode") ?? "",
mode: (params.get("mode") ?? "MODE_UNSPECIFIED") as Mode,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listOrefAlerts", body);

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/leads/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/maritime/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/market/v1/service.proto
@@ -732,7 +731,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListMarketQuotesRequest = {
symbols: params.get("symbols") ?? "",
symbols: params.getAll("symbols"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listMarketQuotes", body);
@@ -779,7 +778,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListCryptoQuotesRequest = {
ids: params.get("ids") ?? "",
ids: params.getAll("ids"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listCryptoQuotes", body);
@@ -826,7 +825,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListCommodityQuotesRequest = {
symbols: params.get("symbols") ?? "",
symbols: params.getAll("symbols"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listCommodityQuotes", body);
@@ -920,7 +919,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListStablecoinMarketsRequest = {
coins: params.get("coins") ?? "",
coins: params.getAll("coins"),
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listStablecoinMarkets", body);
@@ -1137,7 +1136,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetStockAnalysisHistoryRequest = {
symbols: params.get("symbols") ?? "",
symbols: params.getAll("symbols"),
limitPerSymbol: Number(params.get("limit_per_symbol") ?? "0"),
includeNews: params.get("include_news") === "true",
};
@@ -1235,7 +1234,7 @@ export function createMarketServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: ListStoredStockBacktestsRequest = {
symbols: params.get("symbols") ?? "",
symbols: params.getAll("symbols"),
evalWindowDays: Number(params.get("eval_window_days") ?? "0"),
};
if (options?.validateRequest) {

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/military/v1/service.proto
@@ -380,8 +379,8 @@ export function createMilitaryServiceRoutes(
neLon: Number(params.get("ne_lon") ?? "0"),
swLat: Number(params.get("sw_lat") ?? "0"),
swLon: Number(params.get("sw_lon") ?? "0"),
operator: params.get("operator") ?? "",
aircraftType: params.get("aircraft_type") ?? "",
operator: (params.get("operator") ?? "MILITARY_OPERATOR_UNSPECIFIED") as MilitaryOperator,
aircraftType: (params.get("aircraft_type") ?? "MILITARY_AIRCRAFT_TYPE_UNSPECIFIED") as MilitaryAircraftType,
};
if (options?.validateRequest) {
const bodyViolations = options.validateRequest("listMilitaryFlights", body);

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/natural/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/news/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/positive_events/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/prediction/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/radiation/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/research/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/resilience/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/sanctions/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/scenario/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/seismology/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/shipping/v2/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/supply_chain/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/thermal/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/trade/v1/service.proto
@@ -215,7 +214,7 @@ export function createTradeServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetTradeRestrictionsRequest = {
countries: params.get("countries") ?? "",
countries: params.getAll("countries"),
limit: Number(params.get("limit") ?? "0"),
};
if (options?.validateRequest) {
@@ -362,7 +361,7 @@ export function createTradeServiceRoutes(
const url = new URL(req.url, "http://localhost");
const params = url.searchParams;
const body: GetTradeBarriersRequest = {
countries: params.get("countries") ?? "",
countries: params.getAll("countries"),
measureType: params.get("measure_type") ?? "",
limit: Number(params.get("limit") ?? "0"),
};

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/unrest/v1/service.proto
@@ -137,7 +136,7 @@ export function createUnrestServiceRoutes(
pageSize: Number(params.get("page_size") ?? "0"),
cursor: params.get("cursor") ?? "",
country: params.get("country") ?? "",
minSeverity: params.get("min_severity") ?? "",
minSeverity: (params.get("min_severity") ?? "SEVERITY_LEVEL_UNSPECIFIED") as SeverityLevel,
neLat: Number(params.get("ne_lat") ?? "0"),
neLon: Number(params.get("ne_lon") ?? "0"),
swLat: Number(params.get("sw_lat") ?? "0"),

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/webcam/v1/service.proto

View File

@@ -1,4 +1,3 @@
// @ts-nocheck
// Code generated by protoc-gen-ts-server. DO NOT EDIT.
// source: worldmonitor/wildfire/v1/service.proto

View File

@@ -83,7 +83,7 @@ describe('market service symbol casing', () => {
globalThis.fetch = async (input) => {
const url = getRequestUrl(input);
requests.push(url.searchParams.get('symbols'));
requests.push(url.searchParams.getAll('symbols'));
return new Response(JSON.stringify(marketResponse([
quote('btc-usd', 101),
quote('BTC-USD', 202),
@@ -100,7 +100,7 @@ describe('market service symbol casing', () => {
{ symbol: 'BTC-USD', name: 'Upper BTC', display: 'BTC upper' },
]);
assert.equal(requests[0], 'btc-usd,BTC-USD');
assert.deepEqual(requests[0], ['btc-usd', 'BTC-USD']);
assert.deepEqual(
result.data.map((entry) => entry.symbol),
['btc-usd', 'BTC-USD'],
@@ -127,8 +127,7 @@ describe('market service symbol casing', () => {
globalThis.fetch = async (input) => {
fetchCount += 1;
const url = getRequestUrl(input);
const symbols = url.searchParams.get('symbols');
const [symbol = ''] = (symbols ?? '').split(',');
const [symbol = ''] = url.searchParams.getAll('symbols');
const price = symbol === 'BTC-USD' ? 222 : 111;
return new Response(JSON.stringify(marketResponse([quote(symbol, price)])), {
status: 200,

View File

@@ -332,7 +332,7 @@ describe('MarketServiceClient getStockAnalysisHistory', () => {
});
assert.match(requestedUrl, /\/api\/market\/v1\/get-stock-analysis-history\?/);
assert.match(requestedUrl, /symbols=AAPL%2CMSFT|symbols=AAPL,MSFT/);
assert.match(requestedUrl, /symbols=AAPL&symbols=MSFT/);
assert.match(requestedUrl, /limit_per_symbol=4/);
assert.match(requestedUrl, /include_news=true/);
});

View File

@@ -260,7 +260,7 @@ describe('MarketServiceClient listStoredStockBacktests', () => {
await client.listStoredStockBacktests({ symbols: ['MSFT', 'NVDA'], evalWindowDays: 7 });
assert.match(requestedUrl, /\/api\/market\/v1\/list-stored-stock-backtests\?/);
assert.match(requestedUrl, /symbols=MSFT%2CNVDA|symbols=MSFT,NVDA/);
assert.match(requestedUrl, /symbols=MSFT&symbols=NVDA/);
assert.match(requestedUrl, /eval_window_days=7/);
});
});