UNPKG

ojp-sdk-next

Version:

OJP (Open Journey Planner) Javascript SDK

376 lines (351 loc) 19.5 kB
import * as OJP_Types from 'ojp-shared-types'; interface HTTPConfig { url: string; authToken: string | null; } type Language = 'de' | 'fr' | 'it' | 'en'; type OJP_VERSION = '1.0' | '2.0'; type AnySDK = SDK<'1.0'> | SDK<'2.0'>; interface XML_Config { ojpVersion: OJP_VERSION; defaultNS: 'ojp' | 'siri' | null; mapNS: Record<string, string>; } interface RequestInfo { requestDateTime: Date | null; requestXML: string | null; responseDateTime: Date | null; responseXML: string | null; parseDateTime: Date | null; } type ResponseOk<T> = { ok: true; value: T; }; type ResponseError<E> = { ok: false; error: E; }; type OJP_Response<T, E> = ResponseOk<T> | ResponseError<E>; type FareRequestResponse = OJP_Response<OJP_Types.FareDeliverySchema, Error>; type LocationInformationRequestResponse = OJP_Response<OJP_Types.LocationInformationDeliverySchema, Error>; type OJPv1_LocationInformationRequestResponse = OJP_Response<OJP_Types.OJPv1_LocationInformationDeliverySchema, Error>; type StopEventRequestResponse = OJP_Response<OJP_Types.StopEventDeliverySchema, Error>; type OJPv1_StopEventRequestResponse = OJP_Response<OJP_Types.OJPv1_StopEventDeliverySchema, Error>; type TripInfoRequestResponse = OJP_Response<OJP_Types.TripInfoDeliverySchema, Error>; type OJPv1_TripInfoRequestResponse = OJP_Response<OJP_Types.OJPv1_TripInfoDeliverySchema, Error>; type TripRefineRequestResponse = OJP_Response<OJP_Types.TRR_DeliverySchema, Error>; type TripRequestResponse = OJP_Response<OJP_Types.TripDeliverySchema, Error>; type OJPv1_TripRequestResponse = OJP_Response<OJP_Types.OJPv1_TripDeliverySchema, Error>; type ResultSpec = { fetchResponse: unknown; }; declare abstract class BaseRequest<S extends ResultSpec> { requestInfo: RequestInfo; mockRequestXML: string | null; mockResponseXML: string | null; protected constructor(); static initWithRequestMock<T_This extends { Default(): any; }>(this: T_This, mockText: string): ReturnType<T_This['Default']>; static initWithResponseMock<T_This extends { Default(): any; }>(this: T_This, mockText: string): ReturnType<T_This['Default']>; protected abstract _fetchResponse(sdk: AnySDK): Promise<S['fetchResponse']>; fetchResponse(sdk: AnySDK): Promise<S['fetchResponse']>; abstract buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; } declare abstract class SharedLocationInformationRequest<S extends ResultSpec> extends BaseRequest<S> { protected static DefaultRestrictionParams(): OJP_Types.LIR_RequestParamsSchema; updateRestrictions(restrictions: OJP_Types.LIR_RequestParamsSchema, placeTypes: OJP_Types.PlaceTypeEnum[], numberOfResults: number): void; static computeGeoRestriction(bboxData: string | number[]): OJP_Types.GeoRestrictionsSchema | null; } declare class LocationInformationRequest extends SharedLocationInformationRequest<{ fetchResponse: LocationInformationRequestResponse; }> { payload: OJP_Types.LocationInformationRequestSchema; protected constructor(restrictions: OJP_Types.LIR_RequestParamsSchema | undefined); static Default(): LocationInformationRequest; static initWithLocationName(name: string, placeTypes?: OJP_Types.PlaceTypeEnum[], numberOfResults?: number): LocationInformationRequest; static initWithPlaceRef(placeRefOrCoords: string, numberOfResults?: number): LocationInformationRequest; static initWithBBOX(bboxData: string | number[], placeTypes?: OJP_Types.PlaceTypeEnum[], numberOfResults?: number): LocationInformationRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'2.0'>): Promise<LocationInformationRequestResponse>; } declare abstract class SharedStopEventRequest<S extends ResultSpec> extends BaseRequest<S> { protected static DefaultRequestParams(version?: OJP_VERSION): OJP_Types.SER_RequestParamsSchema; } declare class StopEventRequest extends SharedStopEventRequest<{ fetchResponse: StopEventRequestResponse; }> { payload: OJP_Types.StopEventRequestSchema; protected constructor(location: OJP_Types.SER_RequestLocationSchema, params?: OJP_Types.SER_RequestParamsSchema | undefined); static Default(): StopEventRequest; static initWithPlaceRefAndDate(placeRefS: string, date?: Date): StopEventRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'2.0'>): Promise<StopEventRequestResponse>; } declare abstract class SharedTripInfoRequest<S extends ResultSpec> extends BaseRequest<S> { protected static DefaultRequestParams(): { includeCalls?: boolean; includeService?: boolean; includeTrackProjection?: boolean; includePlacesContext?: boolean; includeSituationsContext?: boolean; }; } declare class TripInfoRequest extends SharedTripInfoRequest<{ fetchResponse: TripInfoRequestResponse; }> { payload: OJP_Types.TIR_RequestSchema; protected constructor(journeyRef: string, operatingDayRef: string, params?: OJP_Types.TIR_RequestParamsSchema); static Default(): TripInfoRequest; static initWithJourneyRef(journeyRef: string, journeyDate?: Date): TripInfoRequest; enableTrackProjection(): void; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'2.0'>): Promise<TripInfoRequestResponse>; } type GeoPositionLike = OJP_Types.GeoPositionSchema | number[] | string; declare class GeoPosition implements OJP_Types.GeoPositionSchema { longitude: number; latitude: number; properties: Record<string, any>; constructor(geoPositionArg: GeoPositionLike | number, optionalLatitude?: number | null); isValid(): boolean; distanceFrom(pointB: GeoPosition): number; asLatLngString(roundCoords?: boolean): string; asLngLat(): [number, number]; asGeoPositionSchema(): OJP_Types.GeoPositionSchema; } declare class Trip implements OJP_Types.TripSchema { id: string; duration: string; startTime: string; endTime: string; transfers: number; leg: OJP_Types.LegSchema[]; cancelled?: boolean; delayed?: boolean; deviation?: boolean; infeasible?: boolean; unplanned?: boolean; private constructor(); static initWithTripXML(rawXML: string): Trip; } interface NearbyPlace { distance: number; object: Place; } declare class Place implements OJP_Types.PlaceSchema { stopPoint?: OJP_Types.StopPointSchema; stopPlace?: OJP_Types.StopPlaceSchema; topographicPlace?: OJP_Types.TopographicPlaceSchema; pointOfInterest?: OJP_Types.PointOfInterestSchema; address?: OJP_Types.AddressSchema; name: OJP_Types.InternationalTextSchema; geoPosition: GeoPosition; mode: OJP_Types.ModeStructureSchema[]; attribute: OJP_Types.GeneralAttributeSchema[]; placeType: OJP_Types.PlaceTypeEnum | null; private constructor(); static initWithXMLSchema(placeSchema: OJP_Types.PlaceSchema): Place; static initWithCoords(geoPositionArg: GeoPositionLike | number, optionalLatitude?: number | null): Place; static Empty(): Place; findClosestPlace(otherPlaces: Place[]): NearbyPlace | null; asStopPlaceRefOrCoords(): string; } declare class PlaceResult implements OJP_Types.PlaceResultSchema { place: Place; complete: boolean; probability?: number; private constructor(); static initWithXMLSchema(placeResultSchema: OJP_Types.PlaceResultSchema): PlaceResult; static initWithXML(nodeXML: string): PlaceResult; } declare class StopEventResult implements OJP_Types.StopEventResultSchema { id: string; stopEvent: OJP_Types.StopEventSchema; private constructor(); static initWithXML(nodeXML: string): StopEventResult; } declare class TripRefineRequest extends BaseRequest<{ fetchResponse: TripRefineRequestResponse; }> { payload: OJP_Types.TRR_RequestSchema; protected constructor(tripResult: OJP_Types.TripResultSchema, refineParams?: OJP_Types.TRR_RequestParamsSchema); private static DefaultRequestParams; static Default(): TripRefineRequest; static initWithTrip(trip: Trip): TripRefineRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'2.0'>): Promise<TripRefineRequestResponse>; } type EndpointType = 'origin' | 'destination' | 'both'; declare abstract class SharedTripRequest<S extends ResultSpec> extends BaseRequest<S> { abstract setArrivalDatetime(newDatetime: Date): void; abstract setDepartureDatetime(newDatetime: Date): void; abstract setPublicTransportRequest(motFilter: OJP_Types.VehicleModesOfTransportEnum[] | null): void; abstract setCarRequest(): void; abstract setRailSubmodes(railSubmodes: OJP_Types.RailSubmodeEnum | OJP_Types.RailSubmodeEnum[]): void; abstract setMaxDurationWalkingTime(maxDurationMinutes: number | undefined, endpointType: EndpointType): void; abstract enableLinkProkection(): void; abstract disableLinkProkection(): void; abstract setNumberOfResults(resultsNo: number | null): void; abstract setNumberOfResultsAfter(resultsNo: number): void; abstract setNumberOfResultsBefore(resultsNo: number): void; abstract setWalkSpeedDeviation(walkSpeedPercent: number): void; abstract setOriginDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; abstract setDestinationDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; abstract setViaPlace(place: Place, dwellTime: number | null): void; } declare class TripRequest extends SharedTripRequest<{ fetchResponse: TripRequestResponse; }> { payload: OJP_Types.TripRequestSchema; protected constructor(origin: OJP_Types.PlaceContextSchema, destination: OJP_Types.PlaceContextSchema, via?: OJP_Types.ViaPointSchema[], params?: OJP_Types.TripParamsSchema | null); private static DefaultRequestParams; static Default(): TripRequest; static initWithPlaceRefsOrCoords(originPlaceRefS: string, destinationPlaceRefS: string): TripRequest; static initWithPlaces(origin: Place, destination: Place): TripRequest; setArrivalDatetime(newDatetime?: Date): void; setDepartureDatetime(newDatetime?: Date): void; setPublicTransportRequest(motFilter?: OJP_Types.VehicleModesOfTransportEnum[] | null): void; disableLinkProkection(): void; enableLinkProkection(): void; setCarRequest(): void; setMaxDurationWalkingTime(maxDurationMinutes?: number | undefined, endpointType?: EndpointType): void; setRailSubmodes(railSubmodes: OJP_Types.RailSubmodeEnum | OJP_Types.RailSubmodeEnum[]): void; setNumberOfResults(resultsNo: number | null): void; setNumberOfResultsAfter(resultsNo: number): void; setNumberOfResultsBefore(resultsNo: number): void; private setEndpointDurationDistanceRestrictions; setOriginDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; setDestinationDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; setWalkSpeedDeviation(walkSpeedPercent: number): void; setViaPlace(place: Place, dwellTime: number | null): void; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'2.0'>): Promise<TripRequestResponse>; } declare class OJPv1_FareRequest extends BaseRequest<{ fetchResponse: FareRequestResponse; }> { payload: OJP_Types.FareRequestSchema[]; protected constructor(items: OJP_Types.FareRequestSchema[]); private static DefaultRequestParams; static Default(): OJPv1_FareRequest; private static cleanTripForFareRequest; static initWithOJPv1Trips(trips: OJP_Types.OJPv1_TripSchema[]): OJPv1_FareRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'1.0'>): Promise<FareRequestResponse>; } declare class OJPv1_LocationInformationRequest extends SharedLocationInformationRequest<{ fetchResponse: OJPv1_LocationInformationRequestResponse; }> { payload: OJP_Types.OJPv1_LocationInformationRequestSchema; protected constructor(restrictions: OJP_Types.LIR_RequestParamsSchema); static Default(): OJPv1_LocationInformationRequest; static initWithLocationName(name: string, placeTypes?: OJP_Types.PlaceTypeEnum[], numberOfResults?: number): OJPv1_LocationInformationRequest; static initWithPlaceRef(placeRefOrCoords: string, numberOfResults?: number): OJPv1_LocationInformationRequest; static initWithBBOX(bboxData: string | number[], placeTypes?: OJP_Types.PlaceTypeEnum[], numberOfResults?: number): OJPv1_LocationInformationRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'1.0'>): Promise<OJPv1_LocationInformationRequestResponse>; } declare class OJPv1_StopEventRequest extends SharedStopEventRequest<{ fetchResponse: OJPv1_StopEventRequestResponse; }> { payload: OJP_Types.OJPv1_StopEventRequestSchema; protected constructor(location: OJP_Types.OJPv1_PlaceContextSchema, params?: OJP_Types.SER_RequestParamsSchema | undefined); static Default(): OJPv1_StopEventRequest; static initWithPlaceRefAndDate(placeRefS: string, date?: Date): OJPv1_StopEventRequest; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'1.0'>): Promise<OJPv1_StopEventRequestResponse>; } declare class OJPv1_TripInfoRequest extends SharedTripInfoRequest<{ fetchResponse: OJPv1_TripInfoRequestResponse; }> { payload: OJP_Types.TIR_RequestSchema; protected constructor(journeyRef: string, operatingDayRef: string, params?: OJP_Types.TIR_RequestParamsSchema); static Default(): OJPv1_TripInfoRequest; static initWithJourneyRef(journeyRef: string, journeyDate?: Date): OJPv1_TripInfoRequest; enableTrackProjection(): void; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'1.0'>): Promise<OJPv1_TripInfoRequestResponse>; } declare class OJPv1_TripRequest extends SharedTripRequest<{ fetchResponse: OJPv1_TripRequestResponse; }> { payload: OJP_Types.OJPv1_TripRequestSchema; protected constructor(origin: OJP_Types.OJPv1_PlaceContextSchema, destination: OJP_Types.OJPv1_PlaceContextSchema, via?: OJP_Types.OJPv1_ViaPointSchema[], params?: OJP_Types.OJPv1_TripParamsSchema | null); private static DefaultRequestParams; static Default(): OJPv1_TripRequest; static initWithPlaceRefsOrCoords(originPlaceRefS: string, destinationPlaceRefS: string): OJPv1_TripRequest; static initWithPlaces(origin: Place, destination: Place): OJPv1_TripRequest; setArrivalDatetime(newDatetime?: Date): void; setDepartureDatetime(newDatetime?: Date): void; disableLinkProkection(): void; enableLinkProkection(): void; setPublicTransportRequest(motFilter: OJP_Types.VehicleModesOfTransportEnum[] | null): void; setCarRequest(): void; setRailSubmodes(railSubmodes: OJP_Types.RailSubmodeEnum | OJP_Types.RailSubmodeEnum[]): void; setMaxDurationWalkingTime(maxDurationMinutes: number | undefined, endpointType: EndpointType): void; setNumberOfResults(resultsNo: number | null): void; setNumberOfResultsAfter(resultsNo: number): void; setNumberOfResultsBefore(resultsNo: number): void; setOriginDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; setDestinationDurationDistanceRestrictions(minDuration: number | null, maxDuration: number | null, minDistance: number | null, maxDistance: number | null): void; setWalkSpeedDeviation(walkSpeedPercent: number): void; setViaPlace(place: Place, dwellTime: number | null): void; buildRequestXML(language: Language, requestorRef: string, xmlConfig: XML_Config): string; protected _fetchResponse(sdk: SDK<'1.0'>): Promise<OJPv1_TripRequestResponse>; } declare class EmptyRequest { static init(): void; } declare const builders: { readonly '1.0': { readonly FareRequest: typeof OJPv1_FareRequest; readonly LocationInformationRequest: typeof OJPv1_LocationInformationRequest; readonly StopEventRequest: typeof OJPv1_StopEventRequest; readonly TripInfoRequest: typeof OJPv1_TripInfoRequest; readonly TripRefineRequest: typeof EmptyRequest; readonly TripRequest: typeof OJPv1_TripRequest; }; readonly '2.0': { readonly FareRequest: typeof EmptyRequest; readonly LocationInformationRequest: typeof LocationInformationRequest; readonly StopEventRequest: typeof StopEventRequest; readonly TripInfoRequest: typeof TripInfoRequest; readonly TripRefineRequest: typeof TripRefineRequest; readonly TripRequest: typeof TripRequest; }; }; type Builders = typeof builders; type RequestKey = keyof Builders['2.0']; type ClassFor<V extends OJP_VERSION, K extends RequestKey> = Builders[V][K]; declare class SDK<V extends OJP_VERSION = '2.0'> { readonly version: OJP_VERSION; requestorRef: string; httpConfig: HTTPConfig; language: Language; private constructor(); static create(requestorRef: string, httpConfig: HTTPConfig, language?: Language): SDK<'2.0'>; static v1(requestorRef: string, httpConfig: HTTPConfig, language?: Language): SDK<'1.0'>; get requests(): { [K in RequestKey]: ClassFor<V, K>; }; } declare const SDK_VERSION = "0.21.4"; declare const DefaultXML_Config: XML_Config; declare const XML_BuilderConfigOJPv1: XML_Config; declare const XML_ParserConfigOJPv1: XML_Config; declare class DateHelpers { static formatDate(d: Date): string; static formatTimeHHMM(d?: Date): string; static computeDelayMinutes(timetableTimeS: Date | string, estimatedTimeS: Date | string | null): number | null; } declare class XmlSerializer { xmlConfig: XML_Config; constructor(xmlConfig?: XML_Config); serialize(obj: Record<string, any>, wrapperNodeName: string): string; static transformTagName(tagName: string): string; } export { type AnySDK, DateHelpers, DefaultXML_Config, type FareRequestResponse, GeoPosition, type HTTPConfig, type Language, LocationInformationRequest, type LocationInformationRequestResponse, type OJP_VERSION, OJPv1_FareRequest, OJPv1_LocationInformationRequest, type OJPv1_LocationInformationRequestResponse, OJPv1_StopEventRequest, type OJPv1_StopEventRequestResponse, OJPv1_TripInfoRequest, type OJPv1_TripInfoRequestResponse, OJPv1_TripRequest, type OJPv1_TripRequestResponse, Place, PlaceResult, type RequestInfo, SDK, SDK_VERSION, StopEventRequest, type StopEventRequestResponse, StopEventResult, Trip, TripInfoRequest, type TripInfoRequestResponse, TripRefineRequest, type TripRefineRequestResponse, TripRequest, type TripRequestResponse, XML_BuilderConfigOJPv1, XML_ParserConfigOJPv1, XmlSerializer };