@opentripplanner/core-utils 16.0.4 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,7 @@ query Plan(
7
7
  $fromPlace: String!
8
8
  $modes: [TransportMode]
9
9
  $numItineraries: Int
10
+ $omitCanceled: Boolean
10
11
  $time: String
11
12
  $toPlace: String!
12
13
  $unpreferred: InputUnpreferred
@@ -24,6 +25,7 @@ query Plan(
24
25
  # Currently only supporting EN locale, used for times and text
25
26
  locale: "en"
26
27
  numItineraries: $numItineraries
28
+ omitCanceled: $omitCanceled
27
29
  time: $time
28
30
  toPlace: $toPlace
29
31
  transportModes: $modes
package/esm/query-gen.js CHANGED
@@ -5,7 +5,7 @@ var _excluded = ["from", "modeSettings", "to"];
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  import { print } from "graphql";
8
- var DefaultPlanQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "Plan" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "arriveBy" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Boolean" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "banned" } }, type: { kind: "NamedType", name: { kind: "Name", value: "InputBanned" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "bikeReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "carReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "date" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "fromPlace" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "String" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "modes" } }, type: { kind: "ListType", type: { kind: "NamedType", name: { kind: "Name", value: "TransportMode" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "numItineraries" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Int" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "time" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "toPlace" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "String" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "unpreferred" } }, type: { kind: "NamedType", name: { kind: "Name", value: "InputUnpreferred" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "walkReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "walkSpeed" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "wheelchair" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Boolean" } }, directives: [] }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "plan" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "arriveBy" }, value: { kind: "Variable", name: { kind: "Name", value: "arriveBy" } } }, { kind: "Argument", name: { kind: "Name", value: "banned" }, value: { kind: "Variable", name: { kind: "Name", value: "banned" } } }, { kind: "Argument", name: { kind: "Name", value: "bikeReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "bikeReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "carReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "carReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "date" }, value: { kind: "Variable", name: { kind: "Name", value: "date" } } }, { kind: "Argument", name: { kind: "Name", value: "fromPlace" }, value: { kind: "Variable", name: { kind: "Name", value: "fromPlace" } } }, { kind: "Argument", name: { kind: "Name", value: "locale" }, value: { kind: "StringValue", value: "en", block: false } }, { kind: "Argument", name: { kind: "Name", value: "numItineraries" }, value: { kind: "Variable", name: { kind: "Name", value: "numItineraries" } } }, { kind: "Argument", name: { kind: "Name", value: "time" }, value: { kind: "Variable", name: { kind: "Name", value: "time" } } }, { kind: "Argument", name: { kind: "Name", value: "toPlace" }, value: { kind: "Variable", name: { kind: "Name", value: "toPlace" } } }, { kind: "Argument", name: { kind: "Name", value: "transportModes" }, value: { kind: "Variable", name: { kind: "Name", value: "modes" } } }, { kind: "Argument", name: { kind: "Name", value: "unpreferred" }, value: { kind: "Variable", name: { kind: "Name", value: "unpreferred" } } }, { kind: "Argument", name: { kind: "Name", value: "walkReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "walkReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "walkSpeed" }, value: { kind: "Variable", name: { kind: "Name", value: "walkSpeed" } } }, { kind: "Argument", name: { kind: "Name", value: "wheelchair" }, value: { kind: "Variable", name: { kind: "Name", value: "wheelchair" } } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "itineraries" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "accessibilityScore" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "duration" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "endTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "legs" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "accessibilityScore" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "agency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "id" }, name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "timezone" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "url" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "arrivalDelay" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "departureDelay" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "dropOffBookingInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "contactInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "bookingUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "infoUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "phoneNumber" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "earliestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "latestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "message" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "dropoffType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "duration" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "endTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "fareProducts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "product" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "medium" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "riderCategory" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "DefaultFareProduct" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "price" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "digits" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "DependentFareProduct" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "dependencies" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "price" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "from" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentalVehicle" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "network" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "vertexType" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "headsign" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "interlineWithPreviousLeg" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "intermediateStops" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "locationType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "stopCode" }, name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "stopId" }, name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "legGeometry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "length" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "points" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "mode" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "pickupBookingInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "contactInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "bookingUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "infoUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "phoneNumber" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "earliestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "latestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "message" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "pickupType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "realTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "realtimeState" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentedBike" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rideHailingEstimate" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "arrival" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "maxPrice" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "minPrice" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "provider" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "route" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "color" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "id" }, name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "longName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "shortName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "textColor" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "startTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "steps" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "absoluteDirection" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "area" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "elevationProfile" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "elevation" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "relativeDirection" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "stayOn" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "streetName" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopCalls" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stopLocation" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "to" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentalVehicle" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "network" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "vertexType" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "transitLeg" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "trip" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "arrivalStoptime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopPosition" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "departureStoptime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopPosition" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "startTime" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "transfers" }, name: { kind: "Name", value: "numberOfTransfers" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "waitingTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "walkTime" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "routingErrors" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "description" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "inputField" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 5788, source: { body: "query Plan(\n $arriveBy: Boolean\n $banned: InputBanned\n $bikeReluctance: Float\n $carReluctance: Float\n $date: String\n $fromPlace: String!\n $modes: [TransportMode]\n $numItineraries: Int\n $time: String\n $toPlace: String!\n $unpreferred: InputUnpreferred\n $walkReluctance: Float\n $walkSpeed: Float\n $wheelchair: Boolean\n) {\n plan(\n arriveBy: $arriveBy\n banned: $banned\n bikeReluctance: $bikeReluctance\n carReluctance: $carReluctance\n date: $date\n fromPlace: $fromPlace\n # Currently only supporting EN locale, used for times and text\n locale: \"en\"\n numItineraries: $numItineraries\n time: $time\n toPlace: $toPlace\n transportModes: $modes\n unpreferred: $unpreferred\n walkReluctance: $walkReluctance\n walkSpeed: $walkSpeed\n wheelchair: $wheelchair\n ) {\n itineraries {\n accessibilityScore\n duration\n endTime\n legs {\n accessibilityScore\n agency {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n gtfsId\n id: gtfsId\n name\n timezone\n url\n }\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n arrivalDelay\n departureDelay\n distance\n dropOffBookingInfo {\n contactInfo {\n bookingUrl\n infoUrl\n phoneNumber\n }\n earliestBookingTime {\n daysPrior\n time\n }\n latestBookingTime {\n daysPrior\n time\n }\n message\n }\n dropoffType\n duration\n endTime\n fareProducts {\n id\n product {\n __typename\n id\n medium {\n id\n name\n }\n name\n riderCategory {\n id\n name\n }\n ... on DefaultFareProduct {\n price {\n amount\n currency {\n code\n digits\n }\n }\n }\n ... on DependentFareProduct {\n dependencies {\n id\n }\n price {\n amount\n currency {\n code\n }\n }\n }\n }\n }\n from {\n lat\n lon\n name\n rentalVehicle {\n id\n network\n }\n stop {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n code\n gtfsId\n id\n lat\n lon\n }\n vertexType\n }\n headsign\n id\n interlineWithPreviousLeg\n intermediateStops {\n lat\n locationType\n lon\n name\n stopCode: code\n stopId: id\n }\n legGeometry {\n length\n points\n }\n mode\n pickupBookingInfo {\n contactInfo {\n bookingUrl\n infoUrl\n phoneNumber\n }\n earliestBookingTime {\n daysPrior\n time\n }\n latestBookingTime {\n daysPrior\n time\n }\n message\n }\n pickupType\n realTime\n realtimeState\n rentedBike\n rideHailingEstimate {\n arrival\n maxPrice {\n amount\n currency {\n code\n }\n }\n minPrice {\n amount\n currency {\n code\n }\n }\n provider {\n id\n }\n }\n route {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n color\n gtfsId\n id: gtfsId\n longName\n shortName\n textColor\n type\n }\n startTime\n steps {\n absoluteDirection\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n area\n distance\n elevationProfile {\n distance\n elevation\n }\n lat\n lon\n relativeDirection\n stayOn\n streetName\n }\n stopCalls {\n stopLocation {\n __typename\n }\n }\n to {\n lat\n lon\n name\n rentalVehicle {\n id\n network\n }\n stop {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n code\n gtfsId\n id\n lat\n lon\n }\n vertexType\n }\n transitLeg\n trip {\n arrivalStoptime {\n stop {\n gtfsId\n id\n }\n stopPosition\n }\n departureStoptime {\n stop {\n gtfsId\n id\n }\n stopPosition\n }\n gtfsId\n id\n }\n }\n startTime\n transfers: numberOfTransfers\n waitingTime\n walkTime\n }\n routingErrors {\n code\n description\n inputField\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
8
+ var DefaultPlanQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "Plan" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "arriveBy" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Boolean" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "banned" } }, type: { kind: "NamedType", name: { kind: "Name", value: "InputBanned" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "bikeReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "carReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "date" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "fromPlace" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "String" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "modes" } }, type: { kind: "ListType", type: { kind: "NamedType", name: { kind: "Name", value: "TransportMode" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "numItineraries" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Int" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "omitCanceled" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Boolean" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "time" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "toPlace" } }, type: { kind: "NonNullType", type: { kind: "NamedType", name: { kind: "Name", value: "String" } } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "unpreferred" } }, type: { kind: "NamedType", name: { kind: "Name", value: "InputUnpreferred" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "walkReluctance" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "walkSpeed" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Float" } }, directives: [] }, { kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "wheelchair" } }, type: { kind: "NamedType", name: { kind: "Name", value: "Boolean" } }, directives: [] }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "plan" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "arriveBy" }, value: { kind: "Variable", name: { kind: "Name", value: "arriveBy" } } }, { kind: "Argument", name: { kind: "Name", value: "banned" }, value: { kind: "Variable", name: { kind: "Name", value: "banned" } } }, { kind: "Argument", name: { kind: "Name", value: "bikeReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "bikeReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "carReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "carReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "date" }, value: { kind: "Variable", name: { kind: "Name", value: "date" } } }, { kind: "Argument", name: { kind: "Name", value: "fromPlace" }, value: { kind: "Variable", name: { kind: "Name", value: "fromPlace" } } }, { kind: "Argument", name: { kind: "Name", value: "locale" }, value: { kind: "StringValue", value: "en", block: false } }, { kind: "Argument", name: { kind: "Name", value: "numItineraries" }, value: { kind: "Variable", name: { kind: "Name", value: "numItineraries" } } }, { kind: "Argument", name: { kind: "Name", value: "omitCanceled" }, value: { kind: "Variable", name: { kind: "Name", value: "omitCanceled" } } }, { kind: "Argument", name: { kind: "Name", value: "time" }, value: { kind: "Variable", name: { kind: "Name", value: "time" } } }, { kind: "Argument", name: { kind: "Name", value: "toPlace" }, value: { kind: "Variable", name: { kind: "Name", value: "toPlace" } } }, { kind: "Argument", name: { kind: "Name", value: "transportModes" }, value: { kind: "Variable", name: { kind: "Name", value: "modes" } } }, { kind: "Argument", name: { kind: "Name", value: "unpreferred" }, value: { kind: "Variable", name: { kind: "Name", value: "unpreferred" } } }, { kind: "Argument", name: { kind: "Name", value: "walkReluctance" }, value: { kind: "Variable", name: { kind: "Name", value: "walkReluctance" } } }, { kind: "Argument", name: { kind: "Name", value: "walkSpeed" }, value: { kind: "Variable", name: { kind: "Name", value: "walkSpeed" } } }, { kind: "Argument", name: { kind: "Name", value: "wheelchair" }, value: { kind: "Variable", name: { kind: "Name", value: "wheelchair" } } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "itineraries" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "accessibilityScore" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "duration" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "endTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "legs" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "accessibilityScore" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "agency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "id" }, name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "timezone" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "url" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "arrivalDelay" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "departureDelay" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "dropOffBookingInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "contactInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "bookingUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "infoUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "phoneNumber" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "earliestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "latestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "message" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "dropoffType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "duration" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "endTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "fareProducts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "product" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "medium" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "riderCategory" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "DefaultFareProduct" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "price" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "digits" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "DependentFareProduct" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "dependencies" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "price" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "from" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentalVehicle" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "network" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "vertexType" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "headsign" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "interlineWithPreviousLeg" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "intermediateStops" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "locationType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "stopCode" }, name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "stopId" }, name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "legGeometry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "length" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "points" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "mode" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "pickupBookingInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "contactInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "bookingUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "infoUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "phoneNumber" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "earliestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "latestBookingTime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "daysPrior" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "time" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "message" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "pickupType" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "realTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "realtimeState" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentedBike" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rideHailingEstimate" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "arrival" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "maxPrice" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "minPrice" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amount" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currency" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "provider" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "route" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "color" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "id" }, name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "longName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "shortName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "textColor" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "startTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "steps" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "absoluteDirection" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "area" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "elevationProfile" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "distance" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "elevation" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "relativeDirection" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "stayOn" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "streetName" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopCalls" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stopLocation" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "to" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "rentalVehicle" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "network" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alerts" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "alertDescriptionText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertHeaderText" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "alertUrl" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "effectiveStartDate" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lon" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "vertexType" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "transitLeg" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "trip" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "arrivalStoptime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopPosition" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "departureStoptime" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "stop" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "stopPosition" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "gtfsId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "startTime" }, arguments: [], directives: [] }, { kind: "Field", alias: { kind: "Name", value: "transfers" }, name: { kind: "Name", value: "numberOfTransfers" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "waitingTime" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "walkTime" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "routingErrors" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "code" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "description" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "inputField" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 5845, source: { body: "query Plan(\n $arriveBy: Boolean\n $banned: InputBanned\n $bikeReluctance: Float\n $carReluctance: Float\n $date: String\n $fromPlace: String!\n $modes: [TransportMode]\n $numItineraries: Int\n $omitCanceled: Boolean\n $time: String\n $toPlace: String!\n $unpreferred: InputUnpreferred\n $walkReluctance: Float\n $walkSpeed: Float\n $wheelchair: Boolean\n) {\n plan(\n arriveBy: $arriveBy\n banned: $banned\n bikeReluctance: $bikeReluctance\n carReluctance: $carReluctance\n date: $date\n fromPlace: $fromPlace\n # Currently only supporting EN locale, used for times and text\n locale: \"en\"\n numItineraries: $numItineraries\n omitCanceled: $omitCanceled\n time: $time\n toPlace: $toPlace\n transportModes: $modes\n unpreferred: $unpreferred\n walkReluctance: $walkReluctance\n walkSpeed: $walkSpeed\n wheelchair: $wheelchair\n ) {\n itineraries {\n accessibilityScore\n duration\n endTime\n legs {\n accessibilityScore\n agency {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n gtfsId\n id: gtfsId\n name\n timezone\n url\n }\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n arrivalDelay\n departureDelay\n distance\n dropOffBookingInfo {\n contactInfo {\n bookingUrl\n infoUrl\n phoneNumber\n }\n earliestBookingTime {\n daysPrior\n time\n }\n latestBookingTime {\n daysPrior\n time\n }\n message\n }\n dropoffType\n duration\n endTime\n fareProducts {\n id\n product {\n __typename\n id\n medium {\n id\n name\n }\n name\n riderCategory {\n id\n name\n }\n ... on DefaultFareProduct {\n price {\n amount\n currency {\n code\n digits\n }\n }\n }\n ... on DependentFareProduct {\n dependencies {\n id\n }\n price {\n amount\n currency {\n code\n }\n }\n }\n }\n }\n from {\n lat\n lon\n name\n rentalVehicle {\n id\n network\n }\n stop {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n code\n gtfsId\n id\n lat\n lon\n }\n vertexType\n }\n headsign\n id\n interlineWithPreviousLeg\n intermediateStops {\n lat\n locationType\n lon\n name\n stopCode: code\n stopId: id\n }\n legGeometry {\n length\n points\n }\n mode\n pickupBookingInfo {\n contactInfo {\n bookingUrl\n infoUrl\n phoneNumber\n }\n earliestBookingTime {\n daysPrior\n time\n }\n latestBookingTime {\n daysPrior\n time\n }\n message\n }\n pickupType\n realTime\n realtimeState\n rentedBike\n rideHailingEstimate {\n arrival\n maxPrice {\n amount\n currency {\n code\n }\n }\n minPrice {\n amount\n currency {\n code\n }\n }\n provider {\n id\n }\n }\n route {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n color\n gtfsId\n id: gtfsId\n longName\n shortName\n textColor\n type\n }\n startTime\n steps {\n absoluteDirection\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n area\n distance\n elevationProfile {\n distance\n elevation\n }\n lat\n lon\n relativeDirection\n stayOn\n streetName\n }\n stopCalls {\n stopLocation {\n __typename\n }\n }\n to {\n lat\n lon\n name\n rentalVehicle {\n id\n network\n }\n stop {\n alerts {\n alertDescriptionText\n alertHeaderText\n alertUrl\n effectiveStartDate\n id\n }\n code\n gtfsId\n id\n lat\n lon\n }\n vertexType\n }\n transitLeg\n trip {\n arrivalStoptime {\n stop {\n gtfsId\n id\n }\n stopPosition\n }\n departureStoptime {\n stop {\n gtfsId\n id\n }\n stopPosition\n }\n gtfsId\n id\n }\n }\n startTime\n transfers: numberOfTransfers\n waitingTime\n walkTime\n }\n routingErrors {\n code\n description\n inputField\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
9
9
  /**
10
10
  * Mode Settings can contain additional modes to add to the query,
11
11
  * this function extracts those additional modes from the settings
@@ -1 +1 @@
1
- {"version":3,"file":"query-gen.js","names":["print","DefaultPlanQuery","kind","definitions","operation","name","value","variableDefinitions","variable","type","directives","selectionSet","selections","arguments","block","alias","typeCondition","loc","start","end","source","body","locationOffset","line","column","extractAdditionalModes","modeSettings","enabledModes","reduce","prev","cur","map","m","mode","includes","applicableMode","addTransportMode","newTransportModes","Array","isArray","concat","_toConsumableArray","_cur$options$find","transportMode","options","find","o","combinations","array","length","fill","e1","i","filter","e2","j","SIMPLIFICATIONS","AIRPLANE","BICYCLE","BUS","CABLE_CAR","CAR","FERRY","FLEX","FUNICULAR","GONDOLA","RAIL","MONORAIL","SCOOTER","SUBWAY","TROLLEYBUS","TRAM","TRANSIT","WALK","VALID_COMBOS","BANNED_TOGETHER","TRANSIT_SUBMODES","Object","keys","TRANSIT_SUBMODES_AND_TRANSIT","isCombinationValid","combo","queryTransitSubmodes","simplifiedModes","from","Set","c","qualifier","vc","every","generateCombinations","params","completeModeList","modes","_objectSpread","generateOtp2Query","otpQueryParams","planQuery","undefined","to","otherOtpQueryParams","_objectWithoutProperties","_excluded","modeSettingValues","inverseKey","high","low","key","truthValue","newVal","bikeReluctance","carReluctance","walkReluctance","walkSpeed","wheelchair","query","variables","fromPlace","lat","lon","toPlace"],"sources":["../src/query-gen.ts"],"sourcesContent":["import { LonLatOutput } from \"@conveyal/lonlat\";\nimport { print } from \"graphql\";\nimport {\n ModeSetting,\n ModeSettingValues,\n TransportMode\n} from \"@opentripplanner/types\";\n\nimport DefaultPlanQuery from \"./planQuery.graphql\";\n\ntype InputBanned = {\n routes?: string;\n agencies?: string;\n trips?: string;\n stops?: string;\n stopsHard?: string;\n};\n\ntype InputPreferred = {\n routes?: string;\n agencies?: string;\n unpreferredCost?: string;\n};\n\ntype OTPQueryParams = {\n arriveBy: boolean;\n date?: string;\n from: LonLatOutput & { name?: string };\n modes: TransportMode[];\n modeSettings: ModeSetting[];\n time?: string;\n numItineraries?: number;\n to: LonLatOutput & { name?: string };\n banned?: InputBanned;\n preferred?: InputPreferred;\n unpreferred?: InputPreferred;\n};\n\ntype GraphQLQuery = {\n query: string;\n variables: Record<string, unknown>;\n};\n\n/**\n * Mode Settings can contain additional modes to add to the query,\n * this function extracts those additional modes from the settings\n * and returns them in an array.\n * @param modeSettings List of mode settings with values populated\n * @returns Additional transport modes to add to query\n */\nexport function extractAdditionalModes(\n modeSettings: ModeSetting[],\n enabledModes: TransportMode[]\n): TransportMode[] {\n return modeSettings.reduce<TransportMode[]>((prev, cur) => {\n // First, ensure that the mode associated with this setting is even enabled\n if (!enabledModes.map(m => m.mode).includes(cur.applicableMode)) {\n return prev;\n }\n\n // In checkboxes, mode must be enabled and have a transport mode in it\n if (\n (cur.type === \"CHECKBOX\" || cur.type === \"SUBMODE\") &&\n cur.addTransportMode &&\n cur.value\n ) {\n const newTransportModes = Array.isArray(cur.addTransportMode)\n ? cur.addTransportMode\n : [cur.addTransportMode];\n return [...prev, ...newTransportModes];\n }\n if (cur.type === \"DROPDOWN\") {\n const transportMode = cur.options.find(o => o.value === cur.value)\n ?.addTransportMode;\n if (transportMode) {\n return [...prev, transportMode];\n }\n }\n return prev;\n }, []);\n}\n\n/**\n * Generates every possible mathematical subset of the input TransportModes.\n * Uses code from:\n * https://stackoverflow.com/questions/5752002/find-all-possible-subset-combos-in-an-array\n * @param array Array of input transport modes\n * @returns 2D array representing every possible subset of transport modes from input\n */\nfunction combinations(array: TransportMode[]): TransportMode[][] {\n if (!array) return [];\n return (\n // eslint-disable-next-line no-bitwise\n new Array(1 << array.length)\n .fill(null)\n // eslint-disable-next-line no-bitwise\n .map((e1, i) => array.filter((e2, j) => i & (1 << j)))\n );\n}\n\n/**\n * This constant maps all the transport mode to a broader mode type,\n * which is used to determine the valid combinations of modes used in query generation.\n */\nexport const SIMPLIFICATIONS: Record<string, string> = {\n AIRPLANE: \"TRANSIT\",\n BICYCLE: \"PERSONAL\",\n BUS: \"TRANSIT\",\n CABLE_CAR: \"TRANSIT\",\n CAR: \"CAR\",\n FERRY: \"TRANSIT\",\n FLEX: \"SHARED\", // TODO: this allows FLEX+WALK. Is this reasonable?\n FUNICULAR: \"TRANSIT\",\n GONDOLA: \"TRANSIT\",\n RAIL: \"TRANSIT\",\n MONORAIL: \"TRANSIT\",\n SCOOTER: \"PERSONAL\",\n SUBWAY: \"TRANSIT\",\n TROLLEYBUS: \"TRANSIT\",\n TRAM: \"TRANSIT\",\n TRANSIT: \"TRANSIT\",\n WALK: \"WALK\"\n};\n\n// Inclusion of \"TRANSIT\" alone automatically implies \"WALK\" in OTP\nconst VALID_COMBOS: string[][] = [\n [\"WALK\"],\n [\"PERSONAL\"],\n [\"TRANSIT\", \"SHARED\"],\n [\"WALK\", \"SHARED\"],\n [\"TRANSIT\"],\n [\"TRANSIT\", \"PERSONAL\"],\n [\"TRANSIT\", \"CAR\"]\n];\n\nconst BANNED_TOGETHER = [\"SCOOTER\", \"BICYCLE\", \"CAR\"];\n\nexport const TRANSIT_SUBMODES = Object.keys(SIMPLIFICATIONS).filter(\n mode => SIMPLIFICATIONS[mode] === \"TRANSIT\" && mode !== \"TRANSIT\"\n);\nexport const TRANSIT_SUBMODES_AND_TRANSIT = Object.keys(SIMPLIFICATIONS).filter(\n mode => SIMPLIFICATIONS[mode] === \"TRANSIT\"\n);\n\nfunction isCombinationValid(\n combo: TransportMode[],\n queryTransitSubmodes: string[]\n): boolean {\n if (combo.length === 0) return false;\n\n // All current qualifiers currently simplify to \"SHARED\"\n const simplifiedModes = Array.from(\n new Set(combo.map(c => (c.qualifier ? \"SHARED\" : SIMPLIFICATIONS[c.mode])))\n );\n\n // Ensure that if we have one transit mode, then we include ALL transit modes\n if (simplifiedModes.includes(\"TRANSIT\")) {\n // Don't allow TRANSIT along with any other submodes\n if (queryTransitSubmodes.length && combo.find(c => c.mode === \"TRANSIT\")) {\n return false;\n }\n\n if (\n combo.reduce((prev, cur) => {\n if (queryTransitSubmodes.includes(cur.mode)) {\n return prev - 1;\n }\n return prev;\n }, queryTransitSubmodes.length) !== 0\n ) {\n return false;\n }\n // Continue to the other checks\n }\n\n // OTP doesn't support multiple non-walk modes\n if (BANNED_TOGETHER.filter(m => combo.find(c => c.mode === m)).length > 1) {\n return false;\n }\n\n return !!VALID_COMBOS.find(\n vc =>\n simplifiedModes.length === vc.length &&\n vc.every(m => simplifiedModes.includes(m))\n );\n}\n\n/**\n * Generates a list of queries for OTP to get a comprehensive\n * set of results based on the modes input.\n * @param params OTP Query Params\n * @returns Set of parameters to generate queries\n */\nexport function generateCombinations(params: OTPQueryParams): OTPQueryParams[] {\n const completeModeList = [\n ...extractAdditionalModes(params.modeSettings, params.modes),\n ...params.modes\n ];\n\n // List of the transit *submodes* that are included in the input params\n const queryTransitSubmodes = completeModeList\n .filter(mode => TRANSIT_SUBMODES.includes(mode.mode))\n .map(mode => mode.mode);\n\n return combinations(completeModeList)\n .filter(combo => isCombinationValid(combo, queryTransitSubmodes))\n .map(combo => ({ ...params, modes: combo }));\n}\n\n/**\n * Generates a query for OTP GraphQL API based on parameters.\n * @param param0 OTP2 Parameters for the query\n * @param planQuery Override the default query for OTP\n * @returns A fully formed query+variables ready to be sent to GraphQL backend\n */\nexport function generateOtp2Query(\n otpQueryParams: OTPQueryParams,\n planQuery = DefaultPlanQuery\n): GraphQLQuery {\n const { from, modeSettings, to, ...otherOtpQueryParams } = otpQueryParams;\n\n // This extracts the values from the mode settings to key value pairs\n const modeSettingValues = modeSettings.reduce<\n Record<string, string | number | boolean>\n >((prev, cur) => {\n if (cur.type === \"SLIDER\" && cur.inverseKey && cur.value) {\n prev[cur.inverseKey] = cur.high - cur.value + cur.low;\n } else if (cur.value) {\n prev[cur.key] = cur.value;\n }\n\n if (cur.type === \"CHECKBOX\" && cur.truthValue) {\n // If checked, assign the truthValue. Otherwise use the routing engine default\n const newVal = !!cur.value && cur.truthValue\n if (newVal) {\n prev[cur.key] = newVal;\n }\n }\n return prev;\n // eslint-disable-next-line prettier/prettier -- old eslint doesn't know satisfies\n }, {}) satisfies ModeSettingValues;\n\n const {\n bikeReluctance,\n carReluctance,\n walkReluctance,\n walkSpeed,\n wheelchair\n } = modeSettingValues;\n\n return {\n query: print(planQuery),\n variables: {\n ...otherOtpQueryParams,\n bikeReluctance,\n carReluctance,\n fromPlace: `${from.name}::${from.lat},${from.lon}`,\n toPlace: `${to.name}::${to.lat},${to.lon}`,\n walkReluctance,\n walkSpeed,\n wheelchair\n }\n };\n}\n"],"mappings":";;;;;;AACA,SAASA,KAAK,QAAQ,SAAS;AAAC,IAAAC,gBAAA,KAAAC,IAAA,cAAAC,WAAA,KAAAD,IAAA,yBAAAE,SAAA,WAAAC,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAC,mBAAA,KAAAL,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,wBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAG,IAAA,IAAAP,IAAA,iBAAAO,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAG,IAAA,IAAAP,IAAA,cAAAO,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,wBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAG,IAAA,IAAAP,IAAA,iBAAAO,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,wBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAI,UAAA,UAAAR,IAAA,wBAAAM,QAAA,IAAAN,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAG,IAAA,IAAAP,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAI,UAAA,SAAAA,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,KAAAX,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,2BAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAA,KAAA,IAAAJ,IAAA,iBAAAI,KAAA,QAAAQ,KAAA,eAAAZ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAA,KAAA,IAAAJ,IAAA,cAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAI,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAa,KAAA,IAAAb,IAAA,UAAAI,KAAA,UAAAD,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,sBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,2BAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,oBAAAc,aAAA,IAAAd,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAI,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,yBAAAR,IAAA,oBAAAc,aAAA,IAAAd,IAAA,eAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,8BAAAI,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,mCAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gCAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAa,KAAA,IAAAb,IAAA,UAAAI,KAAA,gBAAAD,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAa,KAAA,IAAAb,IAAA,UAAAI,KAAA,cAAAD,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,2BAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,2BAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,oBAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,oBAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,oBAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAa,KAAA,IAAAb,IAAA,UAAAI,KAAA,UAAAD,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,aAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,wBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,oBAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,eAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,4BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,0BAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,WAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,uBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,oBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,cAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,UAAAO,SAAA,MAAAH,UAAA,oBAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,iBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAa,KAAA,IAAAb,IAAA,UAAAI,KAAA,iBAAAD,IAAA,IAAAH,IAAA,UAAAI,KAAA,yBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,gBAAAO,SAAA,MAAAH,UAAA,eAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,qBAAAO,SAAA,MAAAH,UAAA,MAAAC,YAAA,IAAAT,IAAA,kBAAAU,UAAA,KAAAV,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,YAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,mBAAAO,SAAA,MAAAH,UAAA,UAAAR,IAAA,WAAAG,IAAA,IAAAH,IAAA,UAAAI,KAAA,kBAAAO,SAAA,MAAAH,UAAA,wBAAAO,GAAA,IAAAC,KAAA,KAAAC,GAAA,QAAAC,MAAA,IAAAC,IAAA,48LAAAhB,IAAA,qBAAAiB,cAAA,IAAAC,IAAA,KAAAC,MAAA;AA0ChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,YAA2B,EAC3BC,YAA6B,EACZ;EACjB,OAAOD,YAAY,CAACE,MAAM,CAAkB,UAACC,IAAI,EAAEC,GAAG,EAAK;IACzD;IACA,IAAI,CAACH,YAAY,CAACI,GAAG,CAAC,UAAAC,CAAC;MAAA,OAAIA,CAAC,CAACC,IAAI;IAAA,EAAC,CAACC,QAAQ,CAACJ,GAAG,CAACK,cAAc,CAAC,EAAE;MAC/D,OAAON,IAAI;IACb;;IAEA;IACA,IACE,CAACC,GAAG,CAACrB,IAAI,KAAK,UAAU,IAAIqB,GAAG,CAACrB,IAAI,KAAK,SAAS,KAClDqB,GAAG,CAACM,gBAAgB,IACpBN,GAAG,CAACxB,KAAK,EACT;MACA,IAAM+B,iBAAiB,GAAGC,KAAK,CAACC,OAAO,CAACT,GAAG,CAACM,gBAAgB,CAAC,GACzDN,GAAG,CAACM,gBAAgB,GACpB,CAACN,GAAG,CAACM,gBAAgB,CAAC;MAC1B,UAAAI,MAAA,CAAAC,kBAAA,CAAWZ,IAAI,GAAAY,kBAAA,CAAKJ,iBAAiB;IACvC;IACA,IAAIP,GAAG,CAACrB,IAAI,KAAK,UAAU,EAAE;MAAA,IAAAiC,iBAAA;MAC3B,IAAMC,aAAa,IAAAD,iBAAA,GAAGZ,GAAG,CAACc,OAAO,CAACC,IAAI,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACxC,KAAK,KAAKwB,GAAG,CAACxB,KAAK;MAAA,EAAC,cAAAoC,iBAAA,uBAA5CA,iBAAA,CAClBN,gBAAgB;MACpB,IAAIO,aAAa,EAAE;QACjB,UAAAH,MAAA,CAAAC,kBAAA,CAAWZ,IAAI,IAAEc,aAAa;MAChC;IACF;IACA,OAAOd,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkB,YAAYA,CAACC,KAAsB,EAAqB;EAC/D,IAAI,CAACA,KAAK,EAAE,OAAO,EAAE;EACrB;IACE;IACA,IAAIV,KAAK,CAAC,CAAC,IAAIU,KAAK,CAACC,MAAM,CAAC,CACzBC,IAAI,CAAC,IAAI;IACV;IAAA,CACCnB,GAAG,CAAC,UAACoB,EAAE,EAAEC,CAAC;MAAA,OAAKJ,KAAK,CAACK,MAAM,CAAC,UAACC,EAAE,EAAEC,CAAC;QAAA,OAAKH,CAAC,GAAI,CAAC,IAAIG,CAAE;MAAA,EAAC;IAAA;EAAC;AAE5D;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAuC,GAAG;EACrDC,QAAQ,EAAE,SAAS;EACnBC,OAAO,EAAE,UAAU;EACnBC,GAAG,EAAE,SAAS;EACdC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE,KAAK;EACVC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,QAAQ;EAAE;EAChBC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,SAAS;EACnBC,OAAO,EAAE,UAAU;EACnBC,MAAM,EAAE,SAAS;EACjBC,UAAU,EAAE,SAAS;EACrBC,IAAI,EAAE,SAAS;EACfC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC;;AAED;AACA,IAAMC,YAAwB,GAAG,CAC/B,CAAC,MAAM,CAAC,EACR,CAAC,UAAU,CAAC,EACZ,CAAC,SAAS,EAAE,QAAQ,CAAC,EACrB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClB,CAAC,SAAS,CAAC,EACX,CAAC,SAAS,EAAE,UAAU,CAAC,EACvB,CAAC,SAAS,EAAE,KAAK,CAAC,CACnB;AAED,IAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;AAErD,OAAO,IAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACtB,eAAe,CAAC,CAACH,MAAM,CACjE,UAAApB,IAAI;EAAA,OAAIuB,eAAe,CAACvB,IAAI,CAAC,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS;AAAA,CACnE,CAAC;AACD,OAAO,IAAM8C,4BAA4B,GAAGF,MAAM,CAACC,IAAI,CAACtB,eAAe,CAAC,CAACH,MAAM,CAC7E,UAAApB,IAAI;EAAA,OAAIuB,eAAe,CAACvB,IAAI,CAAC,KAAK,SAAS;AAAA,CAC7C,CAAC;AAED,SAAS+C,kBAAkBA,CACzBC,KAAsB,EACtBC,oBAA8B,EACrB;EACT,IAAID,KAAK,CAAChC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;;EAEpC;EACA,IAAMkC,eAAe,GAAG7C,KAAK,CAAC8C,IAAI,CAChC,IAAIC,GAAG,CAACJ,KAAK,CAAClD,GAAG,CAAC,UAAAuD,CAAC;IAAA,OAAKA,CAAC,CAACC,SAAS,GAAG,QAAQ,GAAG/B,eAAe,CAAC8B,CAAC,CAACrD,IAAI,CAAC;EAAA,CAAC,CAAC,CAC5E,CAAC;;EAED;EACA,IAAIkD,eAAe,CAACjD,QAAQ,CAAC,SAAS,CAAC,EAAE;IACvC;IACA,IAAIgD,oBAAoB,CAACjC,MAAM,IAAIgC,KAAK,CAACpC,IAAI,CAAC,UAAAyC,CAAC;MAAA,OAAIA,CAAC,CAACrD,IAAI,KAAK,SAAS;IAAA,EAAC,EAAE;MACxE,OAAO,KAAK;IACd;IAEA,IACEgD,KAAK,CAACrD,MAAM,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAK;MAC1B,IAAIoD,oBAAoB,CAAChD,QAAQ,CAACJ,GAAG,CAACG,IAAI,CAAC,EAAE;QAC3C,OAAOJ,IAAI,GAAG,CAAC;MACjB;MACA,OAAOA,IAAI;IACb,CAAC,EAAEqD,oBAAoB,CAACjC,MAAM,CAAC,KAAK,CAAC,EACrC;MACA,OAAO,KAAK;IACd;IACA;EACF;;EAEA;EACA,IAAI0B,eAAe,CAACtB,MAAM,CAAC,UAAArB,CAAC;IAAA,OAAIiD,KAAK,CAACpC,IAAI,CAAC,UAAAyC,CAAC;MAAA,OAAIA,CAAC,CAACrD,IAAI,KAAKD,CAAC;IAAA,EAAC;EAAA,EAAC,CAACiB,MAAM,GAAG,CAAC,EAAE;IACzE,OAAO,KAAK;EACd;EAEA,OAAO,CAAC,CAACyB,YAAY,CAAC7B,IAAI,CACxB,UAAA2C,EAAE;IAAA,OACAL,eAAe,CAAClC,MAAM,KAAKuC,EAAE,CAACvC,MAAM,IACpCuC,EAAE,CAACC,KAAK,CAAC,UAAAzD,CAAC;MAAA,OAAImD,eAAe,CAACjD,QAAQ,CAACF,CAAC,CAAC;IAAA,EAAC;EAAA,CAC9C,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS0D,oBAAoBA,CAACC,MAAsB,EAAoB;EAC7E,IAAMC,gBAAgB,MAAApD,MAAA,CAAAC,kBAAA,CACjBhB,sBAAsB,CAACkE,MAAM,CAACjE,YAAY,EAAEiE,MAAM,CAACE,KAAK,CAAC,GAAApD,kBAAA,CACzDkD,MAAM,CAACE,KAAK,EAChB;;EAED;EACA,IAAMX,oBAAoB,GAAGU,gBAAgB,CAC1CvC,MAAM,CAAC,UAAApB,IAAI;IAAA,OAAI2C,gBAAgB,CAAC1C,QAAQ,CAACD,IAAI,CAACA,IAAI,CAAC;EAAA,EAAC,CACpDF,GAAG,CAAC,UAAAE,IAAI;IAAA,OAAIA,IAAI,CAACA,IAAI;EAAA,EAAC;EAEzB,OAAOc,YAAY,CAAC6C,gBAAgB,CAAC,CAClCvC,MAAM,CAAC,UAAA4B,KAAK;IAAA,OAAID,kBAAkB,CAACC,KAAK,EAAEC,oBAAoB,CAAC;EAAA,EAAC,CAChEnD,GAAG,CAAC,UAAAkD,KAAK;IAAA,OAAAa,aAAA,CAAAA,aAAA,KAAUH,MAAM;MAAEE,KAAK,EAAEZ;IAAK;EAAA,CAAG,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASc,iBAAiBA,CAC/BC,cAA8B,EAEhB;EAAA,IADdC,SAAS,GAAApF,SAAA,CAAAoC,MAAA,QAAApC,SAAA,QAAAqF,SAAA,GAAArF,SAAA,MAAGZ,gBAAgB;EAE5B,IAAQmF,IAAI,GAA+CY,cAAc,CAAjEZ,IAAI;IAAE1D,YAAY,GAAiCsE,cAAc,CAA3DtE,YAAY;IAAEyE,EAAE,GAA6BH,cAAc,CAA7CG,EAAE;IAAKC,mBAAmB,GAAAC,wBAAA,CAAKL,cAAc,EAAAM,SAAA;;EAEzE;EACA,IAAMC,iBAAiB,GAAG7E,YAAY,CAACE,MAAM,CAE3C,UAACC,IAAI,EAAEC,GAAG,EAAK;IACf,IAAIA,GAAG,CAACrB,IAAI,KAAK,QAAQ,IAAIqB,GAAG,CAAC0E,UAAU,IAAI1E,GAAG,CAACxB,KAAK,EAAE;MACxDuB,IAAI,CAACC,GAAG,CAAC0E,UAAU,CAAC,GAAG1E,GAAG,CAAC2E,IAAI,GAAG3E,GAAG,CAACxB,KAAK,GAAGwB,GAAG,CAAC4E,GAAG;IACvD,CAAC,MAAM,IAAI5E,GAAG,CAACxB,KAAK,EAAE;MACpBuB,IAAI,CAACC,GAAG,CAAC6E,GAAG,CAAC,GAAG7E,GAAG,CAACxB,KAAK;IAC3B;IAEA,IAAIwB,GAAG,CAACrB,IAAI,KAAK,UAAU,IAAIqB,GAAG,CAAC8E,UAAU,EAAE;MAC7C;MACA,IAAMC,MAAM,GAAG,CAAC,CAAC/E,GAAG,CAACxB,KAAK,IAAIwB,GAAG,CAAC8E,UAAU;MAC5C,IAAIC,MAAM,EAAE;QACVhF,IAAI,CAACC,GAAG,CAAC6E,GAAG,CAAC,GAAGE,MAAM;MACxB;IACF;IACA,OAAOhF,IAAI;IACb;EACA,CAAC,EAAE,CAAC,CAAC,CAA6B;EAElC,IACEiF,cAAc,GAKZP,iBAAiB,CALnBO,cAAc;IACdC,aAAa,GAIXR,iBAAiB,CAJnBQ,aAAa;IACbC,cAAc,GAGZT,iBAAiB,CAHnBS,cAAc;IACdC,SAAS,GAEPV,iBAAiB,CAFnBU,SAAS;IACTC,UAAU,GACRX,iBAAiB,CADnBW,UAAU;EAGZ,OAAO;IACLC,KAAK,EAAEnH,KAAK,CAACiG,SAAS,CAAC;IACvBmB,SAAS,EAAAtB,aAAA,CAAAA,aAAA,KACJM,mBAAmB;MACtBU,cAAc,EAAdA,cAAc;MACdC,aAAa,EAAbA,aAAa;MACbM,SAAS,KAAA7E,MAAA,CAAK4C,IAAI,CAAC/E,IAAI,QAAAmC,MAAA,CAAK4C,IAAI,CAACkC,GAAG,OAAA9E,MAAA,CAAI4C,IAAI,CAACmC,GAAG,CAAE;MAClDC,OAAO,KAAAhF,MAAA,CAAK2D,EAAE,CAAC9F,IAAI,QAAAmC,MAAA,CAAK2D,EAAE,CAACmB,GAAG,OAAA9E,MAAA,CAAI2D,EAAE,CAACoB,GAAG,CAAE;MAC1CP,cAAc,EAAdA,cAAc;MACdC,SAAS,EAATA,SAAS;MACTC,UAAU,EAAVA;IAAU;EAEd,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"query-gen.js","names":["print","DefaultPlanQuery","kind","definitions","operation","name","value","variableDefinitions","variable","type","directives","selectionSet","selections","arguments","block","alias","typeCondition","loc","start","end","source","body","locationOffset","line","column","extractAdditionalModes","modeSettings","enabledModes","reduce","prev","cur","map","m","mode","includes","applicableMode","addTransportMode","newTransportModes","Array","isArray","concat","_toConsumableArray","_cur$options$find","transportMode","options","find","o","combinations","array","length","fill","e1","i","filter","e2","j","SIMPLIFICATIONS","AIRPLANE","BICYCLE","BUS","CABLE_CAR","CAR","FERRY","FLEX","FUNICULAR","GONDOLA","RAIL","MONORAIL","SCOOTER","SUBWAY","TROLLEYBUS","TRAM","TRANSIT","WALK","VALID_COMBOS","BANNED_TOGETHER","TRANSIT_SUBMODES","Object","keys","TRANSIT_SUBMODES_AND_TRANSIT","isCombinationValid","combo","queryTransitSubmodes","simplifiedModes","from","Set","c","qualifier","vc","every","generateCombinations","params","completeModeList","modes","_objectSpread","generateOtp2Query","otpQueryParams","planQuery","undefined","to","otherOtpQueryParams","_objectWithoutProperties","_excluded","modeSettingValues","inverseKey","high","low","key","truthValue","newVal","bikeReluctance","carReluctance","walkReluctance","walkSpeed","wheelchair","query","variables","fromPlace","lat","lon","toPlace"],"sources":["../src/query-gen.ts"],"sourcesContent":["import { LonLatOutput } from \"@conveyal/lonlat\";\nimport { print } from \"graphql\";\nimport {\n ModeSetting,\n ModeSettingValues,\n TransportMode\n} from \"@opentripplanner/types\";\n\nimport DefaultPlanQuery from \"./planQuery.graphql\";\n\ntype InputBanned = {\n routes?: string;\n agencies?: string;\n trips?: string;\n stops?: string;\n stopsHard?: string;\n};\n\ntype InputPreferred = {\n routes?: string;\n agencies?: string;\n unpreferredCost?: string;\n};\n\ntype OTPQueryParams = {\n arriveBy: boolean;\n banned?: InputBanned;\n date?: string;\n from: LonLatOutput & { name?: string };\n modes: TransportMode[];\n modeSettings: ModeSetting[];\n numItineraries?: number;\n omitCanceled?: boolean;\n preferred?: InputPreferred;\n time?: string;\n to: LonLatOutput & { name?: string };\n unpreferred?: InputPreferred;\n};\n\ntype GraphQLQuery = {\n query: string;\n variables: Record<string, unknown>;\n};\n\n/**\n * Mode Settings can contain additional modes to add to the query,\n * this function extracts those additional modes from the settings\n * and returns them in an array.\n * @param modeSettings List of mode settings with values populated\n * @returns Additional transport modes to add to query\n */\nexport function extractAdditionalModes(\n modeSettings: ModeSetting[],\n enabledModes: TransportMode[]\n): TransportMode[] {\n return modeSettings.reduce<TransportMode[]>((prev, cur) => {\n // First, ensure that the mode associated with this setting is even enabled\n if (!enabledModes.map(m => m.mode).includes(cur.applicableMode)) {\n return prev;\n }\n\n // In checkboxes, mode must be enabled and have a transport mode in it\n if (\n (cur.type === \"CHECKBOX\" || cur.type === \"SUBMODE\") &&\n cur.addTransportMode &&\n cur.value\n ) {\n const newTransportModes = Array.isArray(cur.addTransportMode)\n ? cur.addTransportMode\n : [cur.addTransportMode];\n return [...prev, ...newTransportModes];\n }\n if (cur.type === \"DROPDOWN\") {\n const transportMode = cur.options.find(o => o.value === cur.value)\n ?.addTransportMode;\n if (transportMode) {\n return [...prev, transportMode];\n }\n }\n return prev;\n }, []);\n}\n\n/**\n * Generates every possible mathematical subset of the input TransportModes.\n * Uses code from:\n * https://stackoverflow.com/questions/5752002/find-all-possible-subset-combos-in-an-array\n * @param array Array of input transport modes\n * @returns 2D array representing every possible subset of transport modes from input\n */\nfunction combinations(array: TransportMode[]): TransportMode[][] {\n if (!array) return [];\n return (\n // eslint-disable-next-line no-bitwise\n new Array(1 << array.length)\n .fill(null)\n // eslint-disable-next-line no-bitwise\n .map((e1, i) => array.filter((e2, j) => i & (1 << j)))\n );\n}\n\n/**\n * This constant maps all the transport mode to a broader mode type,\n * which is used to determine the valid combinations of modes used in query generation.\n */\nexport const SIMPLIFICATIONS: Record<string, string> = {\n AIRPLANE: \"TRANSIT\",\n BICYCLE: \"PERSONAL\",\n BUS: \"TRANSIT\",\n CABLE_CAR: \"TRANSIT\",\n CAR: \"CAR\",\n FERRY: \"TRANSIT\",\n FLEX: \"SHARED\", // TODO: this allows FLEX+WALK. Is this reasonable?\n FUNICULAR: \"TRANSIT\",\n GONDOLA: \"TRANSIT\",\n RAIL: \"TRANSIT\",\n MONORAIL: \"TRANSIT\",\n SCOOTER: \"PERSONAL\",\n SUBWAY: \"TRANSIT\",\n TROLLEYBUS: \"TRANSIT\",\n TRAM: \"TRANSIT\",\n TRANSIT: \"TRANSIT\",\n WALK: \"WALK\"\n};\n\n// Inclusion of \"TRANSIT\" alone automatically implies \"WALK\" in OTP\nconst VALID_COMBOS: string[][] = [\n [\"WALK\"],\n [\"PERSONAL\"],\n [\"TRANSIT\", \"SHARED\"],\n [\"WALK\", \"SHARED\"],\n [\"TRANSIT\"],\n [\"TRANSIT\", \"PERSONAL\"],\n [\"TRANSIT\", \"CAR\"]\n];\n\nconst BANNED_TOGETHER = [\"SCOOTER\", \"BICYCLE\", \"CAR\"];\n\nexport const TRANSIT_SUBMODES = Object.keys(SIMPLIFICATIONS).filter(\n mode => SIMPLIFICATIONS[mode] === \"TRANSIT\" && mode !== \"TRANSIT\"\n);\nexport const TRANSIT_SUBMODES_AND_TRANSIT = Object.keys(SIMPLIFICATIONS).filter(\n mode => SIMPLIFICATIONS[mode] === \"TRANSIT\"\n);\n\nfunction isCombinationValid(\n combo: TransportMode[],\n queryTransitSubmodes: string[]\n): boolean {\n if (combo.length === 0) return false;\n\n // All current qualifiers currently simplify to \"SHARED\"\n const simplifiedModes = Array.from(\n new Set(combo.map(c => (c.qualifier ? \"SHARED\" : SIMPLIFICATIONS[c.mode])))\n );\n\n // Ensure that if we have one transit mode, then we include ALL transit modes\n if (simplifiedModes.includes(\"TRANSIT\")) {\n // Don't allow TRANSIT along with any other submodes\n if (queryTransitSubmodes.length && combo.find(c => c.mode === \"TRANSIT\")) {\n return false;\n }\n\n if (\n combo.reduce((prev, cur) => {\n if (queryTransitSubmodes.includes(cur.mode)) {\n return prev - 1;\n }\n return prev;\n }, queryTransitSubmodes.length) !== 0\n ) {\n return false;\n }\n // Continue to the other checks\n }\n\n // OTP doesn't support multiple non-walk modes\n if (BANNED_TOGETHER.filter(m => combo.find(c => c.mode === m)).length > 1) {\n return false;\n }\n\n return !!VALID_COMBOS.find(\n vc =>\n simplifiedModes.length === vc.length &&\n vc.every(m => simplifiedModes.includes(m))\n );\n}\n\n/**\n * Generates a list of queries for OTP to get a comprehensive\n * set of results based on the modes input.\n * @param params OTP Query Params\n * @returns Set of parameters to generate queries\n */\nexport function generateCombinations(params: OTPQueryParams): OTPQueryParams[] {\n const completeModeList = [\n ...extractAdditionalModes(params.modeSettings, params.modes),\n ...params.modes\n ];\n\n // List of the transit *submodes* that are included in the input params\n const queryTransitSubmodes = completeModeList\n .filter(mode => TRANSIT_SUBMODES.includes(mode.mode))\n .map(mode => mode.mode);\n\n return combinations(completeModeList)\n .filter(combo => isCombinationValid(combo, queryTransitSubmodes))\n .map(combo => ({ ...params, modes: combo }));\n}\n\n/**\n * Generates a query for OTP GraphQL API based on parameters.\n * @param param0 OTP2 Parameters for the query\n * @param planQuery Override the default query for OTP\n * @returns A fully formed query+variables ready to be sent to GraphQL backend\n */\nexport function generateOtp2Query(\n otpQueryParams: OTPQueryParams,\n planQuery = DefaultPlanQuery\n): GraphQLQuery {\n const { from, modeSettings, to, ...otherOtpQueryParams } = otpQueryParams;\n\n // This extracts the values from the mode settings to key value pairs\n const modeSettingValues = modeSettings.reduce<\n Record<string, string | number | boolean>\n >((prev, cur) => {\n if (cur.type === \"SLIDER\" && cur.inverseKey && cur.value) {\n prev[cur.inverseKey] = cur.high - cur.value + cur.low;\n } else if (cur.value) {\n prev[cur.key] = cur.value;\n }\n\n if (cur.type === \"CHECKBOX\" && cur.truthValue) {\n // If checked, assign the truthValue. Otherwise use the routing engine default\n const newVal = !!cur.value && cur.truthValue\n if (newVal) {\n prev[cur.key] = newVal;\n }\n }\n return prev;\n // eslint-disable-next-line prettier/prettier -- old eslint doesn't know satisfies\n }, {}) satisfies ModeSettingValues;\n\n const {\n bikeReluctance,\n carReluctance,\n walkReluctance,\n walkSpeed,\n wheelchair\n } = modeSettingValues;\n\n return {\n query: print(planQuery),\n variables: {\n ...otherOtpQueryParams,\n bikeReluctance,\n carReluctance,\n fromPlace: `${from.name}::${from.lat},${from.lon}`,\n toPlace: `${to.name}::${to.lat},${to.lon}`,\n walkReluctance,\n walkSpeed,\n wheelchair\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/esm/query.js CHANGED
@@ -237,7 +237,9 @@ function _getFirstGeocodeResult() {
237
237
  if (firstResult) {
238
238
  return geocoder.getLocationFromGeocodedFeature(firstResult);
239
239
  }
240
- return null;
240
+ return {
241
+ name: "(Geocoder failure) ".concat(text)
242
+ };
241
243
  }));
242
244
  case 3:
243
245
  case "end":
@@ -252,7 +254,9 @@ export function parseLocationString(value) {
252
254
  var parts = value.split("::");
253
255
  var coordinates = parts[1] ? stringToCoords(parts[1]) : stringToCoords(parts[0]);
254
256
  var name = parts[1] ? parts[0] : coordsToString(coordinates);
255
- return coordinates.length === 2 ? {
257
+ return coordinates.length === 2 && coordinates.every(function (c) {
258
+ return !!c;
259
+ }) ? {
256
260
  name: name || null,
257
261
  lat: coordinates[0] || null,
258
262
  lon: coordinates[1] || null
package/esm/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","names":["format","isMatch","parse","getGeocoder","qs","getTransitModes","hasCar","isAccessMode","coordsToString","stringToCoords","queryParams","getCurrentTime","getCurrentDate","OTP_API_DATE_FORMAT","OTP_API_TIME_FORMAT","defaultParams","TIME_FORMATS","getQueryParamProperty","paramInfo","property","query","ensureSingleAccessMode","queryModes","accessCount","filter","m","length","firstAccess","find","push","getUrlParams","window","location","href","split","getOtpUrlParams","Object","keys","key","startsWith","getTripOptionsFromQuery","keepPlace","arguments","undefined","options","_objectSpread","time","departArrive","date","from","to","getDefaultQueryParamValue","param","getDefaultQuery","config","defaultQuery","routingType","qp","forEach","name","routingTypes","defaultQueryParams","isParamApplicable","applicable","includes","reduceOtpFlexModes","modes","enabled","reduce","prev","cur","newModes","expandOtpFlexMode","mode","map","join","isNotDefaultQuery","_config$modes","activeModes","sort","mergeFlex","defaultModes","concat","modesEqual","every","value","index","_loop","i","v","_ret","getFirstGeocodeResult","_x","_x2","_getFirstGeocodeResult","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","text","geocoderConfig","geocoderMethod","geocoder","_args","wrap","_callee$","_context","next","abrupt","then","result","firstResult","features","getLocationFromGeocodedFeature","stop","parseLocationString","parts","coordinates","lat","lon","queryParamToLocation","_x3","_x4","_queryParamToLocation","_callee2","_callee2$","_context2","autoMethod","sent","planParamsToQuery","params","fromPlace","toPlace","arriveBy","matchedTimeFormat","timeFormat","Date","intermediatePlaces","maybeNumber","Number","isNaN","planParamsToQueryAsync","_x5","_planParamsToQueryAsync","_callee3","_args3","_callee3$","_context3","getRoutingParams","currentQuery","ignoreRealtimeUpdates","_config$modes2","isItinerary","indexOf","rewriteFunction","itineraryRewrite","profileRewrite","assign","_defineProperty","dateValid","timeValid","minTransitDistance","searchTimeout","onlyTransitTrips","startTimeValid","startTime","endTimeValid","endTime","reducedMode"],"sources":["../src/query.js"],"sourcesContent":["import { format, isMatch, parse } from \"date-fns\";\nimport getGeocoder from \"@opentripplanner/geocoder\";\nimport qs from \"qs\";\n\nimport { getTransitModes, hasCar, isAccessMode } from \"./itinerary\";\nimport { coordsToString, stringToCoords } from \"./map\";\nimport queryParams from \"./query-params\";\nimport {\n getCurrentTime,\n getCurrentDate,\n OTP_API_DATE_FORMAT,\n OTP_API_TIME_FORMAT\n} from \"./time\";\n\n/* The list of default parameters considered in the settings panel */\n\nexport const defaultParams = [\n \"wheelchair\",\n \"maxWalkDistance\",\n \"walkReluctance\",\n \"maxWalkTime\",\n \"maxBikeDistance\",\n \"maxBikeTime\",\n \"bikeSpeed\",\n \"optimize\",\n \"optimizeBike\",\n \"maxEScooterDistance\",\n \"watts\"\n];\n\n/**\n * List of time formats to parse when reading query params.\n */\nconst TIME_FORMATS = [\n \"HH:mm:ss\",\n \"HH:mm\",\n \"H:mm\",\n \"h:mm:ss a\",\n \"h:mm:ssa\",\n \"h:mm a\",\n \"h:mma\",\n \"h:mm\",\n \"HHmm\",\n \"hmm\",\n \"ha\"\n];\n\n/* A function to retrieve a property value from an entry in the query-params\n * table, checking for either a static value or a function */\n\nexport function getQueryParamProperty(paramInfo, property, query) {\n return typeof paramInfo[property] === \"function\"\n ? paramInfo[property](query)\n : paramInfo[property];\n}\n\nexport function ensureSingleAccessMode(queryModes) {\n // Count the number of access modes\n const accessCount = queryModes.filter(m => isAccessMode(m)).length;\n\n // If multiple access modes are specified, keep only the first one\n if (accessCount > 1) {\n const firstAccess = queryModes.find(m => isAccessMode(m));\n queryModes = queryModes.filter(m => !isAccessMode(m) || m === firstAccess);\n\n // If no access modes are specified, add 'WALK' as the default\n } else if (accessCount === 0) {\n queryModes.push(\"WALK\");\n }\n\n return queryModes;\n}\n\nexport function getUrlParams() {\n return qs.parse(window.location.href.split(\"?\")[1]);\n}\n\nexport function getOtpUrlParams() {\n return Object.keys(getUrlParams()).filter(key => !key.startsWith(\"ui_\"));\n}\n\nexport function getTripOptionsFromQuery(query, keepPlace = false) {\n const options = { ...query };\n // Delete time/date options and from/to\n delete options.time;\n delete options.departArrive;\n delete options.date;\n if (!keepPlace) {\n delete options.from;\n delete options.to;\n }\n return options;\n}\n\n/**\n * Gets the query param's default value that is either a constant or by\n * executing the default value function.\n */\nfunction getDefaultQueryParamValue(param) {\n return typeof param.default === \"function\" ? param.default() : param.default;\n}\n\n/**\n * Get the default query to OTP based on the given config.\n */\nexport function getDefaultQuery(config = null) {\n const defaultQuery = { routingType: \"ITINERARY\" };\n queryParams\n .filter(qp => \"default\" in qp)\n .forEach(qp => {\n defaultQuery[qp.name] = getDefaultQueryParamValue(qp);\n });\n if (config) {\n if (config.routingTypes && config.routingTypes.length > 0) {\n defaultQuery.routingType = config.routingTypes[0].key;\n }\n if (config.defaultQueryParams) {\n Object.keys(config.defaultQueryParams).forEach(key => {\n defaultQuery[key] = config.defaultQueryParams[key];\n });\n }\n }\n return defaultQuery;\n}\n\n/**\n * Determine if the specified query param applies to the given query (based on\n * routing type and the param's own applicable function).\n * @param paramInfo an entry from query-params.js\n * @param query the query against which to check if the param applies\n * @param config OTP config\n * @return {Boolean}\n */\nfunction isParamApplicable(paramInfo, query, config) {\n const { applicable, routingTypes } = paramInfo;\n if (!routingTypes.includes(query.routingType)) return false;\n if (typeof applicable === \"function\" && !applicable(query, config)) {\n return false;\n }\n return true;\n}\n\n/**\n * Helper method which replaces OTP flex modes with single FLEX mode that's\n * more useful and easier to work with.\n */\nexport function reduceOtpFlexModes(modes, enabled = true) {\n if (!enabled) return modes;\n\n return modes.reduce((prev, cur) => {\n const newModes = prev;\n // Add the current mode if it is not a flex mode\n if (!cur.includes(\"FLEX\")) {\n newModes.push(cur);\n // If it is a flex mode, do not add it but rather add the custom flex mode\n // if not already present\n } else if (!newModes.includes(\"FLEX\")) {\n newModes.push(\"FLEX\");\n }\n return newModes;\n }, []);\n}\n\n/**\n * Helper method to process a mode string, replacing all instances of FLEX\n * with the full set of FLEX modes used by otp-2\n * @param {*} mode a mode String, not an array\n * @returns a mode String, not an array (with flex modes expanded)\n */\nexport function expandOtpFlexMode(mode) {\n const modes = reduceOtpFlexModes(mode.split(\",\"));\n return modes\n .map(m => {\n // If both the expanded and shrunk modes are included, remove the expanded one\n if (m === \"FLEX_EGRESS\" || m === \"FLEX_ACCESS\" || m === \"FLEX_DIRECT\") {\n if (mode.includes(\"FLEX\")) return \"\";\n }\n if (m === \"FLEX\") {\n return \"FLEX_EGRESS,FLEX_ACCESS,FLEX_DIRECT\";\n }\n return m;\n })\n .join(\",\");\n}\n\n/**\n * Determines whether the specified query differs from the default query, i.e.,\n * whether the user has modified any trip options (including mode) from their\n * default values.\n */\nexport function isNotDefaultQuery(query, config) {\n const activeModes = reduceOtpFlexModes(\n query.mode.split(\",\").sort(),\n config.modes?.mergeFlex\n );\n if (\n activeModes.length !== 2 ||\n activeModes[0] !== \"TRANSIT\" ||\n activeModes[1] !== \"WALK\"\n ) {\n // Default mode is TRANSIT,WALK. If general TRANSIT is not used, check\n // against available transit modes in config.\n const defaultModes = getTransitModes(config)\n .concat([\"WALK\"])\n .sort();\n const modesEqual =\n activeModes.length === defaultModes.length &&\n activeModes.every((value, index) => {\n return value === defaultModes[index];\n });\n if (!modesEqual) return true;\n }\n // If modes are equal, check the remaining params.\n const defaultQuery = getDefaultQuery(config);\n for (let i = 0; i < defaultParams.length; i++) {\n const param = defaultParams[i];\n const paramInfo = queryParams.find(qp => qp.name === param);\n // If the parameter applies to the query and does not match the default\n // value, the query is not default.\n if (\n isParamApplicable(paramInfo, query, config) &&\n query[param] !== defaultQuery[param]\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Geocode utility for returning the first result for the provided place name text.\n * @param {string} text - text to search\n * @param {Object} geocoderConfig\n * @param {string} geocoderMethod - an alternate geocoder api method to use. Defaults to `search`\n * @return {Location}\n */\nasync function getFirstGeocodeResult(\n text,\n geocoderConfig,\n geocoderMethod = \"search\"\n) {\n const geocoder = getGeocoder(geocoderConfig);\n // Attempt to geocode search text and return first result if found.\n // TODO: Import geocoder from @opentripplanner\n return geocoder[geocoderMethod]({ text }).then(result => {\n const firstResult = result.features && result.features[0];\n if (firstResult) {\n return geocoder.getLocationFromGeocodedFeature(firstResult);\n }\n return null;\n });\n}\n\n/**\n * OTP allows passing a location in the form '123 Main St::lat,lon', so we check\n * for the double colon and parse the coordinates accordingly.\n * @param {string} value - query param for place described above\n * @return {Location} - location or null if the value is falsey or the parsed\n * coordinates do not result in both a lat and lon\n */\nexport function parseLocationString(value) {\n if (!value) return null;\n const parts = value.split(\"::\");\n const coordinates = parts[1]\n ? stringToCoords(parts[1])\n : stringToCoords(parts[0]);\n const name = parts[1] ? parts[0] : coordsToString(coordinates);\n return coordinates.length === 2\n ? {\n name: name || null,\n lat: coordinates[0] || null,\n lon: coordinates[1] || null\n }\n : null;\n}\n\n/**\n * Convert a string query param for a from or to place into a location. If\n * coordinates not provided and geocoder config is present, use the first\n * geocoded result.\n * @param {string} value\n * @param {Object} [geocoderConfig=null]\n * @return {Location}\n */\nasync function queryParamToLocation(value, geocoderConfig) {\n let location = parseLocationString(value);\n if (!location && value && geocoderConfig) {\n // If a valid location was not found, but the place name text exists,\n // attempt to geocode the name.\n location = await getFirstGeocodeResult(\n value,\n geocoderConfig,\n geocoderConfig.autoMethod\n );\n }\n return location;\n}\n\n/**\n * Create a otp query based on a the url params.\n *\n * @param {Object} params An object representing the parsed querystring of url\n * params.\n */\nexport function planParamsToQuery(params) {\n const query = {};\n Object.keys(params).forEach(key => {\n switch (key) {\n case \"fromPlace\":\n query.from = parseLocationString(params.fromPlace);\n break;\n case \"toPlace\":\n query.to = parseLocationString(params.toPlace);\n break;\n case \"arriveBy\":\n query.departArrive =\n params.arriveBy === \"true\"\n ? \"ARRIVE\"\n : params.arriveBy === \"false\"\n ? \"DEPART\"\n : \"NOW\";\n break;\n case \"date\":\n query.date = params.date || getCurrentDate();\n break;\n case \"time\":\n {\n // Match one of the supported time formats\n const matchedTimeFormat = TIME_FORMATS.find(timeFormat =>\n isMatch(params.time, timeFormat)\n );\n query.time = matchedTimeFormat\n ? format(\n parse(params.time, matchedTimeFormat, new Date()),\n OTP_API_TIME_FORMAT\n )\n : getCurrentTime();\n }\n break;\n case \"intermediatePlaces\":\n // If query has intermediate places, ensure that they are parsed\n // as locations.\n query.intermediatePlaces = params.intermediatePlaces\n ? params.intermediatePlaces.map(parseLocationString)\n : [];\n break;\n default: {\n const maybeNumber = Number(params[key]);\n // If the param value is an empty string literal and is not a number,\n // use string value. Else, use parsed number value.\n // See https://github.com/opentripplanner/otp-ui/issues/50\n query[key] =\n params[key] === \"\" || Number.isNaN(maybeNumber)\n ? params[key]\n : maybeNumber;\n break;\n }\n }\n });\n return query;\n}\n\n/**\n * Async method to create a otp query based on a the url params. This provides\n * the same functionality as planParamsToQuery, except that it will also attempt\n * to geocode the input from and to strings if no lat/lng values were provided.\n *\n * @param {Object} params An object representing the parsed querystring of url\n * params.\n * @param config the config in the otp-rr store.\n */\nexport async function planParamsToQueryAsync(params, config = {}) {\n // Construct query from plan params.\n const query = planParamsToQuery(params);\n // Attempt to geocode from and to params if the string parsing does not return\n // valid locations.\n if (!query.from) {\n query.from = await queryParamToLocation(params.fromPlace, config.geocoder);\n }\n if (!query.to) {\n query.to = await queryParamToLocation(params.toPlace, config.geocoder);\n }\n return query;\n}\n\n/**\n * Create an object that can be used as a querystring in making an OTP\n * PlannerResource request.\n *\n * See http://otp-docs.ibi-transit.com/api/resource_PlannerResource.html\n *\n * @param {Object} config The OTP application config. See types#configType\n * @param {Object} currentQuery The current query parameters as saved in the\n * application state. This method does some extra logic on top of this data\n * in order to create a request suitable for OTP. See __tests__/query.js#L14 for more.\n * @param {boolean} ignoreRealtimeUpdates If true, will create a request that\n * does not use realtime data.\n */\nexport function getRoutingParams(config, currentQuery, ignoreRealtimeUpdates) {\n const routingType = currentQuery.routingType;\n const isItinerary = routingType === \"ITINERARY\";\n let params = {};\n\n // Start with the universe of OTP parameters defined in query-params.js:\n queryParams\n .filter(qp => {\n // A given parameter is included in the request if all of the following:\n // 1. Must apply to the active routing type (ITINERARY or PROFILE)\n // 2. Must be included in the current user-defined query\n // 3. Must pass the parameter's applicability test, if one is specified\n return (\n qp.routingTypes.indexOf(routingType) !== -1 &&\n qp.name in currentQuery &&\n (typeof qp.applicable !== \"function\" ||\n qp.applicable(currentQuery, config))\n );\n })\n .forEach(qp => {\n // Translate the applicable parameters according to their rewrite\n // functions (if provided)\n const rewriteFunction = isItinerary\n ? qp.itineraryRewrite\n : qp.profileRewrite;\n params = Object.assign(\n params,\n rewriteFunction\n ? rewriteFunction(currentQuery[qp.name])\n : { [qp.name]: currentQuery[qp.name] }\n );\n });\n\n // Additional processing specific to ITINERARY mode\n if (isItinerary) {\n // override ignoreRealtimeUpdates if provided\n if (typeof ignoreRealtimeUpdates === \"boolean\") {\n params.ignoreRealtimeUpdates = ignoreRealtimeUpdates;\n }\n\n // check date/time validity; ignore both if either is invalid\n const dateValid = isMatch(params.date, OTP_API_DATE_FORMAT);\n const timeValid = isMatch(params.time, OTP_API_TIME_FORMAT);\n\n if (!dateValid || !timeValid) {\n delete params.time;\n delete params.date;\n }\n\n // temp: set additional parameters for CAR_HAIL or CAR_RENT trips\n if (\n params.mode &&\n (params.mode.includes(\"CAR_HAIL\") || params.mode.includes(\"CAR_RENT\"))\n ) {\n params.minTransitDistance = \"50%\";\n // increase search timeout because these queries can take a while\n params.searchTimeout = 10000;\n }\n\n // set onlyTransitTrips for car rental searches\n if (params.mode && params.mode.includes(\"CAR_RENT\")) {\n params.onlyTransitTrips = true;\n }\n\n // Additional processing specific to PROFILE mode\n } else {\n // check start and end time validity; ignore both if either is invalid\n const startTimeValid = isMatch(params.startTime, OTP_API_TIME_FORMAT);\n const endTimeValid = isMatch(params.endTime, OTP_API_TIME_FORMAT);\n\n if (!startTimeValid || !endTimeValid) {\n delete params.startTimeValid;\n delete params.endTimeValid;\n }\n }\n\n // TODO: check that valid from/to locations are provided\n\n // hack to add walking to driving/TNC trips\n if (hasCar(params.mode)) {\n params.mode += \",WALK\";\n }\n\n // Replace FLEX placeholder with OTP flex modes\n // Explicit false check allows avoiding a breaking change -- undefined is true\n if (params.mode && config.modes?.mergeFlex !== false) {\n // Ensure query is in reduced format to avoid replacing twice\n const reducedMode = reduceOtpFlexModes(params.mode.split(\",\")).join(\",\");\n params.mode = expandOtpFlexMode(reducedMode);\n }\n\n return params;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"query.js","names":["format","isMatch","parse","getGeocoder","qs","getTransitModes","hasCar","isAccessMode","coordsToString","stringToCoords","queryParams","getCurrentTime","getCurrentDate","OTP_API_DATE_FORMAT","OTP_API_TIME_FORMAT","defaultParams","TIME_FORMATS","getQueryParamProperty","paramInfo","property","query","ensureSingleAccessMode","queryModes","accessCount","filter","m","length","firstAccess","find","push","getUrlParams","window","location","href","split","getOtpUrlParams","Object","keys","key","startsWith","getTripOptionsFromQuery","keepPlace","arguments","undefined","options","_objectSpread","time","departArrive","date","from","to","getDefaultQueryParamValue","param","getDefaultQuery","config","defaultQuery","routingType","qp","forEach","name","routingTypes","defaultQueryParams","isParamApplicable","applicable","includes","reduceOtpFlexModes","modes","enabled","reduce","prev","cur","newModes","expandOtpFlexMode","mode","map","join","isNotDefaultQuery","_config$modes","activeModes","sort","mergeFlex","defaultModes","concat","modesEqual","every","value","index","_loop","i","v","_ret","getFirstGeocodeResult","_x","_x2","_getFirstGeocodeResult","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","text","geocoderConfig","geocoderMethod","geocoder","_args","wrap","_callee$","_context","next","abrupt","then","result","firstResult","features","getLocationFromGeocodedFeature","stop","parseLocationString","parts","coordinates","c","lat","lon","queryParamToLocation","_x3","_x4","_queryParamToLocation","_callee2","_callee2$","_context2","autoMethod","sent","planParamsToQuery","params","fromPlace","toPlace","arriveBy","matchedTimeFormat","timeFormat","Date","intermediatePlaces","maybeNumber","Number","isNaN","planParamsToQueryAsync","_x5","_planParamsToQueryAsync","_callee3","_args3","_callee3$","_context3","getRoutingParams","currentQuery","ignoreRealtimeUpdates","_config$modes2","isItinerary","indexOf","rewriteFunction","itineraryRewrite","profileRewrite","assign","_defineProperty","dateValid","timeValid","minTransitDistance","searchTimeout","onlyTransitTrips","startTimeValid","startTime","endTimeValid","endTime","reducedMode"],"sources":["../src/query.js"],"sourcesContent":["import { format, isMatch, parse } from \"date-fns\";\nimport getGeocoder from \"@opentripplanner/geocoder\";\nimport qs from \"qs\";\n\nimport { getTransitModes, hasCar, isAccessMode } from \"./itinerary\";\nimport { coordsToString, stringToCoords } from \"./map\";\nimport queryParams from \"./query-params\";\nimport {\n getCurrentTime,\n getCurrentDate,\n OTP_API_DATE_FORMAT,\n OTP_API_TIME_FORMAT\n} from \"./time\";\n\n/* The list of default parameters considered in the settings panel */\n\nexport const defaultParams = [\n \"wheelchair\",\n \"maxWalkDistance\",\n \"walkReluctance\",\n \"maxWalkTime\",\n \"maxBikeDistance\",\n \"maxBikeTime\",\n \"bikeSpeed\",\n \"optimize\",\n \"optimizeBike\",\n \"maxEScooterDistance\",\n \"watts\"\n];\n\n/**\n * List of time formats to parse when reading query params.\n */\nconst TIME_FORMATS = [\n \"HH:mm:ss\",\n \"HH:mm\",\n \"H:mm\",\n \"h:mm:ss a\",\n \"h:mm:ssa\",\n \"h:mm a\",\n \"h:mma\",\n \"h:mm\",\n \"HHmm\",\n \"hmm\",\n \"ha\"\n];\n\n/* A function to retrieve a property value from an entry in the query-params\n * table, checking for either a static value or a function */\n\nexport function getQueryParamProperty(paramInfo, property, query) {\n return typeof paramInfo[property] === \"function\"\n ? paramInfo[property](query)\n : paramInfo[property];\n}\n\nexport function ensureSingleAccessMode(queryModes) {\n // Count the number of access modes\n const accessCount = queryModes.filter(m => isAccessMode(m)).length;\n\n // If multiple access modes are specified, keep only the first one\n if (accessCount > 1) {\n const firstAccess = queryModes.find(m => isAccessMode(m));\n queryModes = queryModes.filter(m => !isAccessMode(m) || m === firstAccess);\n\n // If no access modes are specified, add 'WALK' as the default\n } else if (accessCount === 0) {\n queryModes.push(\"WALK\");\n }\n\n return queryModes;\n}\n\nexport function getUrlParams() {\n return qs.parse(window.location.href.split(\"?\")[1]);\n}\n\nexport function getOtpUrlParams() {\n return Object.keys(getUrlParams()).filter(key => !key.startsWith(\"ui_\"));\n}\n\nexport function getTripOptionsFromQuery(query, keepPlace = false) {\n const options = { ...query };\n // Delete time/date options and from/to\n delete options.time;\n delete options.departArrive;\n delete options.date;\n if (!keepPlace) {\n delete options.from;\n delete options.to;\n }\n return options;\n}\n\n/**\n * Gets the query param's default value that is either a constant or by\n * executing the default value function.\n */\nfunction getDefaultQueryParamValue(param) {\n return typeof param.default === \"function\" ? param.default() : param.default;\n}\n\n/**\n * Get the default query to OTP based on the given config.\n */\nexport function getDefaultQuery(config = null) {\n const defaultQuery = { routingType: \"ITINERARY\" };\n queryParams\n .filter(qp => \"default\" in qp)\n .forEach(qp => {\n defaultQuery[qp.name] = getDefaultQueryParamValue(qp);\n });\n if (config) {\n if (config.routingTypes && config.routingTypes.length > 0) {\n defaultQuery.routingType = config.routingTypes[0].key;\n }\n if (config.defaultQueryParams) {\n Object.keys(config.defaultQueryParams).forEach(key => {\n defaultQuery[key] = config.defaultQueryParams[key];\n });\n }\n }\n return defaultQuery;\n}\n\n/**\n * Determine if the specified query param applies to the given query (based on\n * routing type and the param's own applicable function).\n * @param paramInfo an entry from query-params.js\n * @param query the query against which to check if the param applies\n * @param config OTP config\n * @return {Boolean}\n */\nfunction isParamApplicable(paramInfo, query, config) {\n const { applicable, routingTypes } = paramInfo;\n if (!routingTypes.includes(query.routingType)) return false;\n if (typeof applicable === \"function\" && !applicable(query, config)) {\n return false;\n }\n return true;\n}\n\n/**\n * Helper method which replaces OTP flex modes with single FLEX mode that's\n * more useful and easier to work with.\n */\nexport function reduceOtpFlexModes(modes, enabled = true) {\n if (!enabled) return modes;\n\n return modes.reduce((prev, cur) => {\n const newModes = prev;\n // Add the current mode if it is not a flex mode\n if (!cur.includes(\"FLEX\")) {\n newModes.push(cur);\n // If it is a flex mode, do not add it but rather add the custom flex mode\n // if not already present\n } else if (!newModes.includes(\"FLEX\")) {\n newModes.push(\"FLEX\");\n }\n return newModes;\n }, []);\n}\n\n/**\n * Helper method to process a mode string, replacing all instances of FLEX\n * with the full set of FLEX modes used by otp-2\n * @param {*} mode a mode String, not an array\n * @returns a mode String, not an array (with flex modes expanded)\n */\nexport function expandOtpFlexMode(mode) {\n const modes = reduceOtpFlexModes(mode.split(\",\"));\n return modes\n .map(m => {\n // If both the expanded and shrunk modes are included, remove the expanded one\n if (m === \"FLEX_EGRESS\" || m === \"FLEX_ACCESS\" || m === \"FLEX_DIRECT\") {\n if (mode.includes(\"FLEX\")) return \"\";\n }\n if (m === \"FLEX\") {\n return \"FLEX_EGRESS,FLEX_ACCESS,FLEX_DIRECT\";\n }\n return m;\n })\n .join(\",\");\n}\n\n/**\n * Determines whether the specified query differs from the default query, i.e.,\n * whether the user has modified any trip options (including mode) from their\n * default values.\n */\nexport function isNotDefaultQuery(query, config) {\n const activeModes = reduceOtpFlexModes(\n query.mode.split(\",\").sort(),\n config.modes?.mergeFlex\n );\n if (\n activeModes.length !== 2 ||\n activeModes[0] !== \"TRANSIT\" ||\n activeModes[1] !== \"WALK\"\n ) {\n // Default mode is TRANSIT,WALK. If general TRANSIT is not used, check\n // against available transit modes in config.\n const defaultModes = getTransitModes(config)\n .concat([\"WALK\"])\n .sort();\n const modesEqual =\n activeModes.length === defaultModes.length &&\n activeModes.every((value, index) => {\n return value === defaultModes[index];\n });\n if (!modesEqual) return true;\n }\n // If modes are equal, check the remaining params.\n const defaultQuery = getDefaultQuery(config);\n for (let i = 0; i < defaultParams.length; i++) {\n const param = defaultParams[i];\n const paramInfo = queryParams.find(qp => qp.name === param);\n // If the parameter applies to the query and does not match the default\n // value, the query is not default.\n if (\n isParamApplicable(paramInfo, query, config) &&\n query[param] !== defaultQuery[param]\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Geocode utility for returning the first result for the provided place name text.\n * @param {string} text - text to search\n * @param {Object} geocoderConfig\n * @param {string} geocoderMethod - an alternate geocoder api method to use. Defaults to `search`\n * @return {Location}\n */\nasync function getFirstGeocodeResult(\n text,\n geocoderConfig,\n geocoderMethod = \"search\"\n) {\n const geocoder = getGeocoder(geocoderConfig);\n // Attempt to geocode search text and return first result if found.\n // TODO: Import geocoder from @opentripplanner\n return geocoder[geocoderMethod]({ text }).then(result => {\n const firstResult = result.features && result.features[0];\n if (firstResult) {\n return geocoder.getLocationFromGeocodedFeature(firstResult);\n }\n return { name: `(Geocoder failure) ${text}` };\n });\n}\n\n/**\n * OTP allows passing a location in the form '123 Main St::lat,lon', so we check\n * for the double colon and parse the coordinates accordingly.\n * @param {string} value - query param for place described above\n * @return {Location} - location or null if the value is falsey or the parsed\n * coordinates do not result in both a lat and lon\n */\nexport function parseLocationString(value) {\n if (!value) return null;\n const parts = value.split(\"::\");\n const coordinates = parts[1]\n ? stringToCoords(parts[1])\n : stringToCoords(parts[0]);\n const name = parts[1] ? parts[0] : coordsToString(coordinates);\n return coordinates.length === 2 && coordinates.every(c => !!c)\n ? {\n name: name || null,\n lat: coordinates[0] || null,\n lon: coordinates[1] || null\n }\n : null;\n}\n\n/**\n * Convert a string query param for a from or to place into a location. If\n * coordinates not provided and geocoder config is present, use the first\n * geocoded result.\n * @param {string} value\n * @param {Object} [geocoderConfig=null]\n * @return {Location}\n */\nasync function queryParamToLocation(value, geocoderConfig) {\n let location = parseLocationString(value);\n if (!location && value && geocoderConfig) {\n // If a valid location was not found, but the place name text exists,\n // attempt to geocode the name.\n location = await getFirstGeocodeResult(\n value,\n geocoderConfig,\n geocoderConfig.autoMethod\n );\n }\n return location;\n}\n\n/**\n * Create a otp query based on a the url params.\n *\n * @param {Object} params An object representing the parsed querystring of url\n * params.\n */\nexport function planParamsToQuery(params) {\n const query = {};\n Object.keys(params).forEach(key => {\n switch (key) {\n case \"fromPlace\":\n query.from = parseLocationString(params.fromPlace);\n break;\n case \"toPlace\":\n query.to = parseLocationString(params.toPlace);\n break;\n case \"arriveBy\":\n query.departArrive =\n params.arriveBy === \"true\"\n ? \"ARRIVE\"\n : params.arriveBy === \"false\"\n ? \"DEPART\"\n : \"NOW\";\n break;\n case \"date\":\n query.date = params.date || getCurrentDate();\n break;\n case \"time\":\n {\n // Match one of the supported time formats\n const matchedTimeFormat = TIME_FORMATS.find(timeFormat =>\n isMatch(params.time, timeFormat)\n );\n query.time = matchedTimeFormat\n ? format(\n parse(params.time, matchedTimeFormat, new Date()),\n OTP_API_TIME_FORMAT\n )\n : getCurrentTime();\n }\n break;\n case \"intermediatePlaces\":\n // If query has intermediate places, ensure that they are parsed\n // as locations.\n query.intermediatePlaces = params.intermediatePlaces\n ? params.intermediatePlaces.map(parseLocationString)\n : [];\n break;\n default: {\n const maybeNumber = Number(params[key]);\n // If the param value is an empty string literal and is not a number,\n // use string value. Else, use parsed number value.\n // See https://github.com/opentripplanner/otp-ui/issues/50\n query[key] =\n params[key] === \"\" || Number.isNaN(maybeNumber)\n ? params[key]\n : maybeNumber;\n break;\n }\n }\n });\n return query;\n}\n\n/**\n * Async method to create a otp query based on a the url params. This provides\n * the same functionality as planParamsToQuery, except that it will also attempt\n * to geocode the input from and to strings if no lat/lng values were provided.\n *\n * @param {Object} params An object representing the parsed querystring of url\n * params.\n * @param config the config in the otp-rr store.\n */\nexport async function planParamsToQueryAsync(params, config = {}) {\n // Construct query from plan params.\n const query = planParamsToQuery(params);\n // Attempt to geocode from and to params if the string parsing does not return\n // valid locations.\n if (!query.from) {\n query.from = await queryParamToLocation(params.fromPlace, config.geocoder);\n }\n if (!query.to) {\n query.to = await queryParamToLocation(params.toPlace, config.geocoder);\n }\n return query;\n}\n\n/**\n * Create an object that can be used as a querystring in making an OTP\n * PlannerResource request.\n *\n * See http://otp-docs.ibi-transit.com/api/resource_PlannerResource.html\n *\n * @param {Object} config The OTP application config. See types#configType\n * @param {Object} currentQuery The current query parameters as saved in the\n * application state. This method does some extra logic on top of this data\n * in order to create a request suitable for OTP. See __tests__/query.js#L14 for more.\n * @param {boolean} ignoreRealtimeUpdates If true, will create a request that\n * does not use realtime data.\n */\nexport function getRoutingParams(config, currentQuery, ignoreRealtimeUpdates) {\n const routingType = currentQuery.routingType;\n const isItinerary = routingType === \"ITINERARY\";\n let params = {};\n\n // Start with the universe of OTP parameters defined in query-params.js:\n queryParams\n .filter(qp => {\n // A given parameter is included in the request if all of the following:\n // 1. Must apply to the active routing type (ITINERARY or PROFILE)\n // 2. Must be included in the current user-defined query\n // 3. Must pass the parameter's applicability test, if one is specified\n return (\n qp.routingTypes.indexOf(routingType) !== -1 &&\n qp.name in currentQuery &&\n (typeof qp.applicable !== \"function\" ||\n qp.applicable(currentQuery, config))\n );\n })\n .forEach(qp => {\n // Translate the applicable parameters according to their rewrite\n // functions (if provided)\n const rewriteFunction = isItinerary\n ? qp.itineraryRewrite\n : qp.profileRewrite;\n params = Object.assign(\n params,\n rewriteFunction\n ? rewriteFunction(currentQuery[qp.name])\n : { [qp.name]: currentQuery[qp.name] }\n );\n });\n\n // Additional processing specific to ITINERARY mode\n if (isItinerary) {\n // override ignoreRealtimeUpdates if provided\n if (typeof ignoreRealtimeUpdates === \"boolean\") {\n params.ignoreRealtimeUpdates = ignoreRealtimeUpdates;\n }\n\n // check date/time validity; ignore both if either is invalid\n const dateValid = isMatch(params.date, OTP_API_DATE_FORMAT);\n const timeValid = isMatch(params.time, OTP_API_TIME_FORMAT);\n\n if (!dateValid || !timeValid) {\n delete params.time;\n delete params.date;\n }\n\n // temp: set additional parameters for CAR_HAIL or CAR_RENT trips\n if (\n params.mode &&\n (params.mode.includes(\"CAR_HAIL\") || params.mode.includes(\"CAR_RENT\"))\n ) {\n params.minTransitDistance = \"50%\";\n // increase search timeout because these queries can take a while\n params.searchTimeout = 10000;\n }\n\n // set onlyTransitTrips for car rental searches\n if (params.mode && params.mode.includes(\"CAR_RENT\")) {\n params.onlyTransitTrips = true;\n }\n\n // Additional processing specific to PROFILE mode\n } else {\n // check start and end time validity; ignore both if either is invalid\n const startTimeValid = isMatch(params.startTime, OTP_API_TIME_FORMAT);\n const endTimeValid = isMatch(params.endTime, OTP_API_TIME_FORMAT);\n\n if (!startTimeValid || !endTimeValid) {\n delete params.startTimeValid;\n delete params.endTimeValid;\n }\n }\n\n // TODO: check that valid from/to locations are provided\n\n // hack to add walking to driving/TNC trips\n if (hasCar(params.mode)) {\n params.mode += \",WALK\";\n }\n\n // Replace FLEX placeholder with OTP flex modes\n // Explicit false check allows avoiding a breaking change -- undefined is true\n if (params.mode && config.modes?.mergeFlex !== false) {\n // Ensure query is in reduced format to avoid replacing twice\n const reducedMode = reduceOtpFlexModes(params.mode.split(\",\")).join(\",\");\n params.mode = expandOtpFlexMode(reducedMode);\n }\n\n return params;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ query Plan(
7
7
  $fromPlace: String!
8
8
  $modes: [TransportMode]
9
9
  $numItineraries: Int
10
+ $omitCanceled: Boolean
10
11
  $time: String
11
12
  $toPlace: String!
12
13
  $unpreferred: InputUnpreferred
@@ -24,6 +25,7 @@ query Plan(
24
25
  # Currently only supporting EN locale, used for times and text
25
26
  locale: "en"
26
27
  numItineraries: $numItineraries
28
+ omitCanceled: $omitCanceled
27
29
  time: $time
28
30
  toPlace: $toPlace
29
31
  transportModes: $modes