@opentripplanner/core-utils 13.0.0-alpha.4 → 14.0.0-alpha.1

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.
@@ -0,0 +1,97 @@
1
+ {
2
+ "fakeTransitOperators": [
3
+ {
4
+ "feedId": "kcm",
5
+ "agencyId": "kcm:23",
6
+ "name": "City of Seattle",
7
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_4_City_of_Seattle.png"
8
+ },
9
+ {
10
+ "feedId": "CommTrans",
11
+ "agencyId": "CommTrans:29",
12
+ "name": "Community Transit",
13
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_community_transit.png"
14
+ },
15
+ {
16
+ "feedId": "97",
17
+ "agencyId": "97:97",
18
+ "name": "Everett Transit",
19
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_Everett_Transit.png"
20
+ },
21
+ {
22
+ "feedId": "19",
23
+ "agencyId": "19:0",
24
+ "name": "Intercity Transit",
25
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/intercity_transit_logo.jpg"
26
+ },
27
+ {
28
+ "feedId": "kcm",
29
+ "agencyId": "kcm:1",
30
+ "name": "King County Metro",
31
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_kcm.png"
32
+ },
33
+ {
34
+ "feedId": "Kitsap",
35
+ "agencyId": "Kitsap:kt",
36
+ "name": "Kitsap Transit",
37
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_Kitsap_Transit.png",
38
+ "order": 2
39
+ },
40
+ {
41
+ "feedId": "3",
42
+ "agencyId": "3:3",
43
+ "name": "Pierce Transit",
44
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_pierce_transit.png"
45
+ },
46
+ {
47
+ "feedId": "Skagit",
48
+ "agencyId": "Skagit:e0e4541a-2714-487b-b30c-f5c6cb4a310f",
49
+ "name": "Skagit Transit",
50
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_Skagit.png"
51
+ },
52
+ {
53
+ "feedId": "96",
54
+ "agencyId": "96:96",
55
+ "name": "Seattle Center Monorail",
56
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_seattle_monorail.png"
57
+ },
58
+ {
59
+ "feedId": "40",
60
+ "agencyId": "40:40",
61
+ "name": "Sound Transit",
62
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_sound_transit.png",
63
+ "order": 1
64
+ },
65
+ {
66
+ "feedId": "CommTrans",
67
+ "agencyId": "CommTrans:40",
68
+ "name": "Sound Transit",
69
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_sound_transit.png"
70
+ },
71
+ {
72
+ "feedId": "kcm",
73
+ "agencyId": "kcm:40",
74
+ "name": "Sound Transit",
75
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_sound_transit.png"
76
+ },
77
+ {
78
+ "feedId": "3",
79
+ "agencyId": "3:40",
80
+ "name": "Sound Transit",
81
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_sound_transit.png",
82
+ "order": 1
83
+ },
84
+ {
85
+ "feedId": "95",
86
+ "agencyId": "95:95",
87
+ "name": "Washington State Ferries",
88
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_wash_state_ferry.png"
89
+ },
90
+ {
91
+ "feedId": "Whatcom",
92
+ "agencyId": "Whatcom:14",
93
+ "name": "Whatcom Transportation Authority",
94
+ "logo": "https://s3.amazonaws.com/datatools-production/branding/agency_2_wta.png"
95
+ }
96
+ ]
97
+ }
@@ -1,107 +1,236 @@
1
1
  {
2
- "route1": {
3
- "longName": "Across town",
4
- "mode": "BUS",
5
- "shortName": "10",
6
- "sortOrder": 10
7
- },
8
- "route2": {
9
- "longName": "Around town",
10
- "mode": "BUS",
11
- "shortName": "20",
12
- "sortOrder": 2
13
- },
14
- "route3": {
15
- "longName": "Around another town",
16
- "shortName": "3",
17
- "sortOrder": -999,
18
- "type": 3
19
- },
20
- "route4": {
21
- "longName": "Loop route",
22
- "mode": "BUS",
23
- "shortName": "2",
24
- "sortOrder": -999
25
- },
26
- "route5": {
27
- "longName": "A-line",
28
- "mode": "BUS",
29
- "shortName": "A",
30
- "sortOrder": -999
31
- },
32
- "route6": {
33
- "longName": "B-line",
34
- "mode": "BUS",
35
- "shortName": "B",
36
- "sortOrder": -999
37
- },
38
- "route7": {
39
- "longName": "A meandering route",
40
- "mode": "BUS",
41
- "sortOrder": -999
42
- },
43
- "route8": {
44
- "longName": "Zig-zagging route",
45
- "mode": "BUS",
46
- "shortName": "30",
47
- "sortOrder": 2
48
- },
49
- "route9": {
50
- "longName": "Express route",
51
- "mode": "BUS",
52
- "shortName": "30",
53
- "sortOrder": 2
54
- },
55
- "route10": {
56
- "longName": "Variation of express route",
57
- "mode": "BUS",
58
- "shortName": "30",
59
- "sortOrder": 2
60
- },
61
- "route11": {
62
- "longName": "Local route",
63
- "mode": "BUS",
64
- "shortName": "6",
65
- "sortOrder": 2
66
- },
67
- "route12": {
68
- "longName": "Intercity Train",
69
- "mode": "RAIL",
70
- "shortName": "IC",
71
- "sortOrder": 2
72
- },
73
- "route13": {
74
- "longName": "Yellow line Subway",
75
- "mode": "SUBWAY",
76
- "shortName": "Yellow",
77
- "sortOrder": 2
78
- },
79
- "route14": {
80
- "longName": "Xpress route C",
81
- "mode": "BUS",
82
- "shortName": "30C",
83
- "sortOrder": 2
84
- },
85
- "route15": {
86
- "longName": "Express route X",
87
- "mode": "BUS",
88
- "shortName": "30X",
89
- "sortOrder": 2
90
- },
91
- "route16": {
92
- "agencyId": "abc",
93
- "agencyName": "Agency 1",
94
- "longName": "Intercity Train 2",
95
- "mode": "RAIL",
96
- "routeId": "1:it2",
97
- "shortName": "IC"
98
- },
99
- "route17": {
100
- "agencyId": "abc",
101
- "agencyName": "Acclaimed agency 1",
102
- "longName": "Express route X",
103
- "mode": "BUS",
104
- "routeId": "2:erx",
105
- "shortName": "30X"
106
- }
2
+ "otp1Routes": [
3
+ {
4
+ "agencyId": "bcd",
5
+ "longName": "Across town",
6
+ "mode": "BUS",
7
+ "shortName": "10",
8
+ "sortOrder": 10
9
+ },
10
+ {
11
+ "agencyId": "bcd",
12
+ "longName": "Around town",
13
+ "mode": "BUS",
14
+ "shortName": "20",
15
+ "sortOrder": 2
16
+ },
17
+ {
18
+ "agencyId": "bcd",
19
+ "longName": "Around another town",
20
+ "shortName": "3",
21
+ "sortOrder": -999,
22
+ "type": 3
23
+ },
24
+ {
25
+ "agencyId": "bcd",
26
+ "longName": "Loop route",
27
+ "mode": "BUS",
28
+ "shortName": "2",
29
+ "sortOrder": -999
30
+ },
31
+ {
32
+ "agencyId": "bcd",
33
+ "longName": "A-line",
34
+ "mode": "BUS",
35
+ "shortName": "A",
36
+ "sortOrder": -999
37
+ },
38
+ {
39
+ "agencyId": "bcd",
40
+ "longName": "B-line",
41
+ "mode": "BUS",
42
+ "shortName": "B",
43
+ "sortOrder": -999
44
+ },
45
+ {
46
+ "agencyId": "bcd",
47
+ "longName": "A meandering route",
48
+ "mode": "BUS",
49
+ "sortOrder": -999
50
+ },
51
+ {
52
+ "agencyId": "bcd",
53
+ "longName": "Zig-zagging route",
54
+ "mode": "BUS",
55
+ "shortName": "30",
56
+ "sortOrder": 2
57
+ },
58
+ {
59
+ "agencyId": "bcd",
60
+ "longName": "Express route",
61
+ "mode": "BUS",
62
+ "shortName": "30",
63
+ "sortOrder": 2
64
+ },
65
+ {
66
+ "agencyId": "bcd",
67
+ "longName": "Variation of express route",
68
+ "mode": "BUS",
69
+ "shortName": "30",
70
+ "sortOrder": 2
71
+ },
72
+ {
73
+ "agencyId": "bcd",
74
+ "longName": "Local route",
75
+ "mode": "BUS",
76
+ "shortName": "6",
77
+ "sortOrder": 2
78
+ },
79
+ {
80
+ "agencyId": "bcd",
81
+ "longName": "Intercity Train",
82
+ "mode": "RAIL",
83
+ "shortName": "IC",
84
+ "sortOrder": 2
85
+ },
86
+ {
87
+ "agencyId": "bcd",
88
+ "longName": "Yellow line Subway",
89
+ "mode": "SUBWAY",
90
+ "shortName": "Yellow",
91
+ "sortOrder": 2
92
+ },
93
+ {
94
+ "agencyId": "bcd",
95
+ "longName": "Xpress route C",
96
+ "mode": "BUS",
97
+ "shortName": "30C",
98
+ "sortOrder": 2
99
+ },
100
+ {
101
+ "agencyId": "bcd",
102
+ "longName": "Express route X",
103
+ "mode": "BUS",
104
+ "shortName": "30X"
105
+ },
106
+ {
107
+ "agencyId": "abc",
108
+ "agencyName": "Agency 1",
109
+ "longName": "Intercity Train 2",
110
+ "mode": "RAIL",
111
+ "routeId": "1:it2",
112
+ "shortName": "IC",
113
+ "sortOrder": 10
114
+ },
115
+ {
116
+ "agencyId": "abc",
117
+ "agencyName": "Acclaimed agency 1",
118
+ "longName": "Express route X",
119
+ "mode": "BUS",
120
+ "routeId": "2:erx",
121
+ "shortName": "30X",
122
+ "sortOrder": 10
123
+ }
124
+ ],
125
+ "otp2Routes": [
126
+ {
127
+ "longName": "Across town",
128
+ "mode": "BUS",
129
+ "shortName": "10",
130
+ "sortOrder": 10
131
+ },
132
+ {
133
+ "longName": "Around town",
134
+ "mode": "BUS",
135
+ "shortName": "20",
136
+ "sortOrder": 2
137
+ },
138
+ {
139
+ "longName": "Around another town",
140
+ "shortName": "3",
141
+ "sortOrder": null,
142
+ "type": 3
143
+ },
144
+ {
145
+ "longName": "Loop route",
146
+ "mode": "BUS",
147
+ "shortName": "2",
148
+ "sortOrder": -999
149
+ },
150
+ {
151
+ "longName": "A-line",
152
+ "mode": "BUS",
153
+ "shortName": "A",
154
+ "sortOrder": -999
155
+ },
156
+ {
157
+ "longName": "B-line",
158
+ "mode": "BUS",
159
+ "shortName": "B"
160
+ },
161
+ {
162
+ "longName": "A meandering route",
163
+ "mode": "BUS"
164
+ },
165
+ {
166
+ "longName": "Zig-zagging route",
167
+ "mode": "BUS",
168
+ "shortName": "30",
169
+ "sortOrder": 2
170
+ },
171
+ {
172
+ "longName": "Express route",
173
+ "mode": "BUS",
174
+ "shortName": "30",
175
+ "sortOrder": 2
176
+ },
177
+ {
178
+ "longName": "Variation of express route",
179
+ "mode": "BUS",
180
+ "shortName": "30",
181
+ "sortOrder": 2
182
+ },
183
+ {
184
+ "longName": "Local route",
185
+ "mode": "BUS",
186
+ "shortName": "6",
187
+ "sortOrder": 2
188
+ },
189
+ {
190
+ "longName": "Intercity Train",
191
+ "mode": "RAIL",
192
+ "shortName": "IC",
193
+ "sortOrder": 2
194
+ },
195
+ {
196
+ "longName": "Yellow line Subway",
197
+ "mode": "SUBWAY",
198
+ "shortName": "Yellow",
199
+ "sortOrder": 2
200
+ },
201
+ {
202
+ "longName": "Xpress route C",
203
+ "mode": "BUS",
204
+ "shortName": "30C",
205
+ "sortOrder": 2
206
+ },
207
+ {
208
+ "longName": "Express route X",
209
+ "mode": "BUS",
210
+ "shortName": "30X",
211
+ "sortOrder": 2
212
+ },
213
+ {
214
+ "agency": {
215
+ "name": "Agency 1",
216
+ "id": "abc"
217
+ },
218
+ "longName": "Intercity Train 2",
219
+ "mode": "RAIL",
220
+ "routeId": "1:it2",
221
+ "shortName": "IC",
222
+ "sortOrder": 2
223
+ },
224
+ {
225
+ "agency": {
226
+ "name": "Acclaimed agency 1",
227
+ "id": "abc"
228
+ },
229
+ "longName": "Express route X",
230
+ "mode": "BUS",
231
+ "routeId": "2:erx",
232
+ "shortName": "30X",
233
+ "sortOrder": 2
234
+ }
235
+ ]
107
236
  }
package/esm/query-gen.js CHANGED
@@ -131,9 +131,7 @@ function isCombinationValid(combo, queryTransitSubmodes) {
131
131
  return false;
132
132
  }
133
133
  return !!VALID_COMBOS.find(function (vc) {
134
- return simplifiedModes.every(function (m) {
135
- return vc.includes(m);
136
- }) && vc.every(function (m) {
134
+ return simplifiedModes.length === vc.length && vc.every(function (m) {
137
135
  return simplifiedModes.includes(m);
138
136
  });
139
137
  });
@@ -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","_cur$falseValue","falseValue","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 (or submode 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 = {\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 = [\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.every(m => vc.includes(m)) &&\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((prev, cur) => {\n if (cur.type === \"SLIDER\" && cur.inverseKey) {\n prev[cur.inverseKey] = cur.high - cur.value + cur.low;\n }\n prev[cur.key] = cur.value;\n\n // If we assign a value on true, return the value (or null) instead of a boolean.\n if (cur.type === \"CHECKBOX\" && cur.truthValue) {\n prev[cur.key] =\n cur.value === true ? cur.truthValue : cur.falseValue ?? null;\n }\n return prev;\n }, {}) as 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":[]}
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","_cur$falseValue","falseValue","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 (or submode 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 = {\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 = [\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((prev, cur) => {\n if (cur.type === \"SLIDER\" && cur.inverseKey) {\n prev[cur.inverseKey] = cur.high - cur.value + cur.low;\n }\n prev[cur.key] = cur.value;\n\n // If we assign a value on true, return the value (or null) instead of a boolean.\n if (cur.type === \"CHECKBOX\" && cur.truthValue) {\n prev[cur.key] =\n cur.value === true ? cur.truthValue : cur.falseValue ?? null;\n }\n return prev;\n }, {}) as 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":[]}