UNPKG

geonet

Version:

A Node.js API wrapper for GeoNet — Aotearoa's geological hazard monitoring system.

91 lines (90 loc) 4.91 kB
import { IntensityService } from "./services/IntensityService"; import { IntensityRequestUnion, IntensityResponse } from "../@types/intensity"; import { StrongService } from "./services/StrongService"; import { StrongResponse } from "../@types/strong"; import { NewsService } from "./services/NewsService"; import { NewsFeedResponse } from "../@types/news"; import { QuakeService } from "./services/QuakeService"; import { QuakeHistoryResponse, QuakeResponse, QuakesResponse, QuakeStatsResponse } from "../@types/quake"; import { VolcanoService } from "./services/VolcanoService"; import { VolcanoAlertLevelResponse, VolcanoID, VolcanoQuakeResponse } from "../@types/volcano"; import { NetworkService } from "./services/NetworkService"; import { NetworkFDSNStationRequest, NetworkFDSNStationResponse, NetworkGNSStationResponse, NetworkSensorRequest, NetworkSensorResponse } from "../@types/network"; import { Geometry, MMI } from "../@types/common"; import { QuakeMapUtil } from "./utils/QuakeMapUtil"; /** * Main class for interacting with the GeoNet API and related utilities. * Provides access to all GeoNet services through a unified interface. * * @remarks * This class acts as a central interface for all GeoNet API services and related utilities, thus providing a simplified * way for accessing earthquake, volcano, network data, among others, from GeoNet. * * @example * ```typescript * import { GeoNet } from "geonet"; * const geonet = new GeoNet(); * * // Get recent earthquakes * const quakes = await geonet.getQuakes(...); * ``` * * @see {@link https://api.geonet.org.nz} GeoNet API Documentation. * @see {@link IntensityService} For intensity-related methods. * @see {@link StrongService} For strong motion-related methods. * @see {@link NewsService} For news-related methods. * @see {@link QuakeService} For quake-related methods. * @see {@link VolcanoService} For volcano-related methods. * @see {@link NetworkService} For network-related methods. * @see {@link QuakeMapUtil} For generating GeoNet quake map URLs. * * @since 1.0.0 */ export declare class GeoNet { private readonly intensityService; private readonly strongService; private readonly newsService; private readonly quakeService; private readonly volcanoService; private readonly networkService; private readonly quakeMapUtil; /** * Creates a new instance of the GeoNet client. * * @param {IntensityService} intensityService - Service for intensity data. * @param {StrongService} strongService - Service for strong motion data. * @param {NewsService} newsService - Service for news feed data. * @param {QuakeService} quakeService - Service for earthquake data. * @param {VolcanoService} volcanoService - Service for volcanic activity data. * @param {NetworkService} networkService - Service for network sensor data. */ constructor(intensityService?: IntensityService, strongService?: StrongService, newsService?: NewsService, quakeService?: QuakeService, volcanoService?: VolcanoService, networkService?: NetworkService, quakeMapUtil?: QuakeMapUtil); /** @inheritdoc {@link IntensityService.getIntensity} */ getIntensity(req: IntensityRequestUnion): Promise<IntensityResponse>; /** @inheritdoc {@link StrongService.getStrong} */ getStrong(publicID: string): Promise<StrongResponse>; /** @inheritdoc {@link NewsService.getNews} */ getNews(page?: number): Promise<NewsFeedResponse>; /** @inheritdoc {@link QuakeService.getQuake} */ getQuake(publicID: string): Promise<QuakeResponse>; /** @inheritdoc {@link QuakeService.getQuakeHistory} */ getQuakeHistory(publicID: string): Promise<QuakeHistoryResponse>; /** @inheritdoc {@link QuakeService.getQuakeStats} */ getQuakeStats(): Promise<QuakeStatsResponse>; /** @inheritdoc {@link QuakeService.getQuakes} */ getQuakes(mmi: MMI): Promise<QuakesResponse>; /** @inheritdoc {@link VolcanoService.getVolcanoAlertLevel} */ getVolcanoAlertLevel(): Promise<VolcanoAlertLevelResponse>; /** @inheritdoc {@link VolcanoService.getVolcanoQuakes} */ getVolcanoQuakes(volcanoID: VolcanoID): Promise<VolcanoQuakeResponse>; /** @inheritdoc {@link NetworkService.getNetworkSensor} */ getNetworkSensor(req: NetworkSensorRequest): Promise<NetworkSensorResponse>; /** @inheritdoc {@link NetworkService.getNetworkGNSSDetails} */ getNetworkGNSSDetails(code: string): Promise<NetworkGNSStationResponse>; /** @inheritdoc {@link NetworkService.getNetworkFDSNDetails} */ getNetworkFDSNDetails(req: NetworkFDSNStationRequest): Promise<NetworkFDSNStationResponse>; /** @inheritdoc {@link QuakeMapUtil.generateMapURL} */ generateMapURL(coordinates: Geometry["coordinates"], mmi: MMI): string; /** @inheritdoc {@link QuakeMapUtil.generateColourCode} */ generateColourCode(mmi: MMI): string; }