diff --git a/p/bls/base.json b/p/bls/base.json new file mode 100644 index 00000000..387da18b --- /dev/null +++ b/p/bls/base.json @@ -0,0 +1,13 @@ +{ + "auth": { + "type": "AID", + "aid": "3jkAncud78HSoqclmN54812A" + }, + "client": { + "type": "WEB", + "id": "HAFAS", + "name": "webapp" + }, + "endpoint": "https://bls.hafas.de/bin/mgate.exe", + "defaultLanguage": "de" +} diff --git a/p/bls/example.js b/p/bls/example.js new file mode 100644 index 00000000..f364826c --- /dev/null +++ b/p/bls/example.js @@ -0,0 +1,53 @@ +'use strict' + +const createClient = require('../..') +const blsProfile = require('.') + +const client = createClient(blsProfile, 'hafas-client-example') + +const bernDennigkofengässli = '8590093' +const münsingenSpital = '8578932' + +client.journeys(bernDennigkofengässli, münsingenSpital, {results: 1, stopovers: true}) + +// .then(({journeys}) => { +// const [journey] = journeys +// return client.refreshJourney(journey.refreshToken, {stopovers: true, remarks: true}) +// }) + +// .then(({journeys}) => { +// const [journey] = journeys +// const leg = journey.legs[0] +// return client.trip(leg.tripId, leg.line.name, {polyline: true}) +// }) + +// client.departures(bernDennigkofengässli, {duration: 1}) +// client.arrivals(bernDennigkofengässli, {duration: 10, linesOfStops: true}) +// client.radar({ +// north: 46.969, +// west: 7.3941, +// south: 46.921, +// east: 7.5141, +// }, {results: 10}) + +// client.locations('münsingen spital', {results: 3}) +// client.stop(bernDennigkofengässli, {linesOfStops: true}) +// client.nearby({ +// type: 'location', +// latitude: 53.554422, +// longitude: 9.977934 +// }, {distance: 500}) +// client.reachableFrom({ +// type: 'location', +// id: '990017698', +// address: 'Bern, Schänzlihalde 17', +// latitude: 46.952835, +// longitude: 7.447527, +// }, { +// maxDuration: 10, +// }) + +.then((data) => { + console.log(require('util').inspect(data, {depth: null, colors: true})) +}) +.catch(console.error) diff --git a/p/bls/index.js b/p/bls/index.js new file mode 100644 index 00000000..ec9f3d01 --- /dev/null +++ b/p/bls/index.js @@ -0,0 +1,94 @@ +'use strict' + +const baseProfile = require('./base.json') + +const products = [{ + id: 'ice', + mode: 'train', + bitmasks: [1], + name: 'ICE', + short: 'ICE', + default: true, +}, { + id: 'ic-ec', + mode: 'train', + bitmasks: [2], + name: 'IC/EC', + short: 'IC/EC', + default: true, +}, { + id: 'ir', + mode: 'train', + bitmasks: [4], + name: 'IR', + short: 'IR', + default: true, +}, { + id: 'local-train', + mode: 'train', + bitmasks: [8], + name: 'Nahverkehr', + short: 'Nahverkehr', + default: true, +}, { + id: 'watercraft', + mode: 'watercraft', + bitmasks: [16], + name: 'Schiff', + short: 'Schiff', + default: true, +}, { + id: 's-bahn', + mode: 'train', + bitmasks: [32], + name: 'S-Bahn', + short: 'S', + default: true, +}, { + id: 'bus', + mode: 'bus', + bitmasks: [64], + name: 'Bus', + short: 'Bus', + default: true, +}, { + id: 'funicular', + mode: 'gondola', + bitmasks: [128], + name: 'Seilbahn', + short: 'Seilbahn', + default: true, +}, { + id: 'tram', + mode: 'train', + bitmasks: [512], + name: 'Tram', + short: 'Tram', + default: true, +}, { + id: 'car-shuttle-train', + mode: 'train', + bitmasks: [4096], + name: 'Autoverlad', + short: 'Autoverlad', + default: true, +}] + +const blsProfile = { + ...baseProfile, + locale: 'de-DE', + timezone: 'Europe/Berlin', + ver: '1.46', + + products, + + trip: true, + radar: true, + refreshJourneyUseOutReconL: true, + reachableFrom: true, + + departuresGetPasslist: false, + departuresStbFltrEquiv: false, +} + +module.exports = blsProfile diff --git a/p/bls/readme.md b/p/bls/readme.md new file mode 100644 index 00000000..eae5effe --- /dev/null +++ b/p/bls/readme.md @@ -0,0 +1,15 @@ +# BLS profile for `hafas-client` + +[*BLS AG*](https://en.wikipedia.org/wiki/BLS_AG) is the local transport provider of the [Canton of Bern](https://en.wikipedia.org/wiki/Canton_of_Bern). This profile adds *BLS* support to `hafas-client`. + +## Usage + +```js +const createClient = require('hafas-client') +const blsProfile = require('hafas-client/p/BLS') + +// create a client with BLS profile +const client = createClient(blsProfile, 'my-awesome-program') +``` + +Check out the [code examples](example.js). diff --git a/p/readme.md b/p/readme.md index d5baff97..9a8597f2 100644 --- a/p/readme.md +++ b/p/readme.md @@ -41,6 +41,7 @@ HAFAS endpoint | wrapper library | docs | example code | profile name [Salzburg public transport (SVV)](https://de.wikipedia.org/wiki/Salzburger_Verkehrsverbund) | - | [docs](svv/readme.md) | [example](svv/example.js) | [`svv`](svv) [Verkehrsverbund Tirol (VVT)](https://de.wikipedia.org/wiki/Verkehrsverbund_Tirol) | - | [docs](vvt/readme.md) | [example](vvt/example.js) | [`vvt`](vvt) [*Kärntner Linien/Verkehrsverbund Kärnten (VKG/VVK)*](https://de.wikipedia.org/wiki/Verkehrsverbund_Kärnten) | - | [docs](vkg/readme.md) | [example](vkg/example.js) | [`vkg`](vkg) +[*BLS AG*](https://en.wikipedia.org/wiki/BLS_AG) (Bern) | - | [docs](bls/readme.md) | [example](bls/example.js) | [`bls`](bls) [Zürich public transport (ZVV)](https://en.wikipedia.org/wiki/Zürcher_Verkehrsverbund) | - | [docs](zvv/readme.md) | [example](zvv/example.js) | [`zvv`](zvv) ## writing your own diff --git a/test/e2e/bls.js b/test/e2e/bls.js new file mode 100644 index 00000000..f0be4026 --- /dev/null +++ b/test/e2e/bls.js @@ -0,0 +1,51 @@ +'use strict' + +const tap = require('tap') + +const {createWhen} = require('./lib/util') +const createClient = require('../..') +const blsProfile = require('../../p/bls') +const createValidate = require('./lib/validate-fptf-with') +const testJourneysStationToAddress = require('./lib/journeys-station-to-address') + +const when = createWhen(blsProfile.timezone, blsProfile.locale) + +const cfg = { + when, + stationCoordsOptional: false, + products: blsProfile.products, + minLatitude: 45.3184, + minLongitude: 4.4604, + maxLatitude: 47.2969, + maxLongitude: 7.8607, +} + +const validate = createValidate(cfg) + +const client = createClient(blsProfile, 'public-transport/hafas-client:test') + +const bernDennigkofengässli = '8590093' + +tap.test('Dennigkofengässli to Schänzlihalde', async (t) => { + const schänzlihalde = { + type: 'location', + id: '990017698', + address: 'Bern, Schänzlihalde 17', + latitude: 46.952835, + longitude: 7.447527, + } + + const res = await client.journeys(bernDennigkofengässli, schänzlihalde, { + results: 3, + departure: when, + }) + + await testJourneysStationToAddress({ + test: t, + res, + validate, + fromId: bernDennigkofengässli, + to: schänzlihalde, + }) + t.end() +}) diff --git a/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a b/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a new file mode 100644 index 00000000..0bea0ee0 --- /dev/null +++ b/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a @@ -0,0 +1 @@ +{"ver":"1.46","lang":"deu","id":"aikazgck2qsepi8x","err":"OK","graph":{"id":"standard","index":0},"subGraph":{"id":"global","index":0},"view":{"id":"standard","index":0,"type":"WGS84"},"svcResL":[{"meth":"TripSearch","err":"OK","res":{"common":{"locL":[{"lid":"A=1@O=Bern, Dennigkofengässli@X=7483160@Y=46944690@U=85@L=8590093@","type":"S","name":"Bern, Dennigkofengässli","icoX":0,"extId":"8590093","state":"F","crd":{"x":7483160,"y":46944690,"z":0,"floor":0},"pCls":64,"chgTime":"000200"},{"lid":"A=1@O=Ostermundigen, Zollgasse@X=7487781@Y=46957949@U=85@L=8577004@","type":"S","name":"Ostermundigen, Zollgasse","icoX":0,"extId":"8577004","state":"F","crd":{"x":7487781,"y":46957949,"z":0,"floor":0},"pCls":64,"chgTime":"000200"},{"lid":"A=1@O=Bern, Viktoriaplatz@X=7451006@Y=46954731@U=85@L=8590021@","type":"S","name":"Bern, Viktoriaplatz","icoX":0,"extId":"8590021","state":"F","crd":{"x":7451006,"y":46954731,"z":0,"floor":0},"pCls":576,"chgTime":"000200"},{"lid":"A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@U=103@L=990017698@","type":"A","name":"Bern, Schänzlihalde 17","icoX":3,"extId":"990017698","state":"F","crd":{"x":7447527,"y":46952835}},{"lid":"A=1@O=Bern Wankdorf, Bahnhof@X=7464382@Y=46966597@U=85@L=8590129@","type":"S","name":"Bern Wankdorf, Bahnhof","icoX":0,"extId":"8590129","state":"F","crd":{"x":7464382,"y":46966597,"z":0,"floor":0},"pCls":576,"chgTime":"000200"},{"lid":"A=1@O=Bern, Kursaal@X=7449612@Y=46952889@U=85@L=8590020@","type":"S","name":"Bern, Kursaal","icoX":0,"extId":"8590020","state":"F","crd":{"x":7449612,"y":46952889,"z":0,"floor":0},"pCls":576,"chgTime":"000200"},{"lid":"A=1@O=Bern, Brunnadernstrasse@X=7463717@Y=46941176@U=85@L=8507061@","type":"S","name":"Bern, Brunnadernstrasse","icoX":0,"extId":"8507061","state":"F","crd":{"x":7463717,"y":46941185,"z":0,"floor":0},"pCls":576,"chgTime":"000200"},{"lid":"A=1@O=Bern, Zytglogge@X=7447500@Y=46947837@U=85@L=8507110@","type":"S","name":"Bern, Zytglogge","icoX":0,"extId":"8507110","state":"F","crd":{"x":7447500,"y":46947846,"z":0,"floor":0},"pCls":576,"chgTime":"000200"},{"lid":"A=1@O=Bern, Sulgenau@X=7435904@Y=46939971@U=85@L=8589992@","type":"S","name":"Bern, Sulgenau","icoX":0,"extId":"8589992","state":"F","crd":{"x":7435904,"y":46939971,"z":0,"floor":0},"pCls":576,"chgTime":"000200"}],"prodL":[{"pid":"L::6::B::B2232853076::6_000827_28::*","name":"B 28","nameS":"B 28","number":"28","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 28","num":"23546","line":"28","matchId":"28","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"pid":"L::6::B::B2232853076::6_000827_28::*","name":"B 28","nameS":"B 28","number":"28","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 28","num":"23546","line":"28","lineId":"6_000827_28","matchId":"28","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"pid":"L::6::B::B2232853076::6_000827_10::*","name":"B 10","nameS":"B 10","number":"10","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 10","num":"10430","line":"10","matchId":"10","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"pid":"L::6::B::B2232853076::6_000827_10::*","name":"B 10","nameS":"B 10","number":"10","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 10","num":"10430","line":"10","lineId":"6_000827_10","matchId":"10","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"name":"Fussweg","icoX":4,"prodCtx":{"name":"Fussweg"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6125","line":"9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6125","line":"9A","lineId":"9_000827_9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::6::B::B2232853076::6_000827_28::*","name":"B 28","nameS":"B 28","number":"28","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 28","num":"23479","line":"28","matchId":"28","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"pid":"L::6::B::B2232853076::6_000827_28::*","name":"B 28","nameS":"B 28","number":"28","icoX":0,"cls":64,"oprX":0,"prodCtx":{"name":"B 28","num":"23479","line":"28","lineId":"6_000827_28","matchId":"28","catOut":"B ","catOutS":"B","catOutL":"Bus","catIn":"B","catCode":"6","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_7::*","name":"T 7","nameS":"T 7","number":"7","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 7","num":"2484","line":"7","matchId":"7","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_7::*","name":"T 7","nameS":"T 7","number":"7","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 7","num":"2484","line":"7","lineId":"9_000827_7","matchId":"7","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6903","line":"9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6903","line":"9A","lineId":"9_000827_9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6939","line":"9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}},{"pid":"L::9::T::B2232853076::9_000827_9A::*","name":"T 9A","nameS":"T 9A","number":"9A","icoX":7,"cls":512,"oprX":0,"prodCtx":{"name":"T 9A","num":"6939","line":"9A","lineId":"9_000827_9A","matchId":"9A","catOut":"T ","catOutS":"T","catOutL":"Tram","catIn":"T","catCode":"9","admin":"000827"}}],"opL":[{"name":"Städtische Verkehrsbetriebe Bern","icoX":1}],"remL":[{"type":"A","code":"NF","prio":0,"icoX":2,"txtN":"Niederflureinstieg"},{"type":"A","code":"OM","prio":1,"icoX":2,"txtN":"Maskenpflicht für Reisende ab 12 Jahren"}],"icoL":[{"res":"prod_bus","fg":{"r":0,"g":40,"b":160},"bg":{"r":160,"g":225,"b":0}},{"res":"SVB","txt":"Städtische Verkehrsbetriebe Bern"},{"res":"attr_info"},{"res":"loc_addr"},{"res":"prod_walk","fg":{"r":255,"g":255,"b":255},"bg":{"r":244,"g":168,"b":0}},{"bg":{"r":160,"g":225,"b":0},"shp":"C"},{"bg":{"r":117,"g":117,"b":117},"shp":"C"},{"res":"prod_tram","fg":{"r":0,"g":40,"b":160},"bg":{"r":160,"g":225,"b":0}},{"res":"cl_pt_only"},{"res":"cl_pt_mix_ship"},{"res":"cl_cartr_only"}],"lDrawStyleL":[{"sIcoX":0,"type":"SOLID","bg":{"r":160,"g":225,"b":0}},{"type":"SOLID","bg":{"r":160,"g":225,"b":0}},{"sIcoX":4,"type":"DOT","bg":{"r":117,"g":117,"b":117}},{"type":"DOT","bg":{"r":117,"g":117,"b":117}},{"sIcoX":5,"type":"SOLID","bg":{"r":160,"g":225,"b":0}},{"sIcoX":5,"eIcoX":5,"type":"SOLID","bg":{"r":160,"g":225,"b":0}},{"eIcoX":6,"type":"DOT","bg":{"r":117,"g":117,"b":117}},{"sIcoX":7,"type":"SOLID","bg":{"r":160,"g":225,"b":0}}],"timeStyleL":[{"mode":"ABS"}]},"outConL":[{"cid":"C-0","date":"20210503","dur":"002200","durS":"002200","durR":"002200","chg":1,"sDays":{"sDaysR":"nicht täglich","sDaysI":"3. Mai bis 2. Jul 2021 Mo - Fr; 6. bis 24. Sep 2021 Mo - Fr; 18. Okt bis 10. Dez 2021 Mo - Fr; nicht 13., 14., 24. Mai","sDaysB":"7CE00007CF9F00000003E7CF9F3C3CF9F3E7CE1F1E7CF9F3E7C0000000000000001F3E7C000007CF9F3E7CF9F3E0"},"dep":{"locX":0,"idx":13,"dProdX":0,"dTimeS":"101000","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":3,"aTimeS":"103200","aTimeFS":{"styleX":0},"type":"N"},"secL":[{"type":"JNY","dep":{"locX":0,"idx":13,"dProdX":0,"dTimeS":"101000","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":1,"idx":17,"aProdX":0,"aTimeS":"101500","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|99362|0|85|3052021","prodX":1,"dirTxt":"Bern Wankdorf, Bahnhof","dirFlg":"H","status":"P","isRchbl":true,"freq":{"minC":15,"maxC":15,"numC":7},"ctxRecon":"T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Ostermundigen, Zollgasse@L=8577004@a=128@$202105031010$202105031015$B 28$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":0,"tLocX":1,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":0,"tLocX":1,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":1,"fLocX":0,"tLocX":1,"fIdx":13,"tIdx":17}],"sumLDrawStyleX":0,"resLDrawStyleX":4,"trainStartDate":"20210503","durS":"000500"},"minChg":"000200"},{"type":"JNY","dep":{"locX":1,"idx":4,"dProdX":2,"dTimeS":"101700","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":2,"idx":12,"aProdX":2,"aPltfS":{"type":"ST","txt":"C"},"aTimeS":"102600","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|95540|3|85|3052021","prodX":3,"dirTxt":"Schliern, Bus-Endstation","dirFlg":"R","status":"P","isRchbl":true,"freq":{"minC":5,"maxC":5,"numC":19},"ctxRecon":"T$A=1@O=Ostermundigen, Zollgasse@L=8577004@a=128@$A=1@O=Bern, Viktoriaplatz@L=8590021@a=128@$202105031017$202105031026$B 10$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":1,"tLocX":2,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":1,"tLocX":2,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":3,"fLocX":1,"tLocX":2,"fIdx":4,"tIdx":12}],"sumLDrawStyleX":0,"resLDrawStyleX":5,"trainStartDate":"20210503","durS":"000900"},"minChg":"000600"},{"type":"WALK","dep":{"locX":2,"dTimeS":"102600","dTimeFS":{"styleX":0},"type":"N"},"arr":{"locX":3,"aTimeS":"103200","aTimeFS":{"styleX":0},"type":"N"},"gis":{"dist":438,"durS":"000600","ctx":"G|1|G@F|A=1@O=Bern, Viktoriaplatz@X=7451006@Y=46954731@U=85@L=8590021@|A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@U=103@L=990017698@|3052021|102600|103200|fb|ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§||","gisPrvr":"E","getDescr":true,"getPoly":true,"sumLDrawStyleX":2,"resLDrawStyleX":6,"prodX":4}}],"freq":{"minC":15},"conSubscr":"P","recState":"U","cksum":"77c059f5_3","cksumDti":"81b8a224_3","intvlSubscr":"P","originType":"INITIAL","recon":{"ctx":"¶HKI¶T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Ostermundigen, Zollgasse@L=8577004@a=128@$202105031010$202105031015$B 28$$1$$$$§T$A=1@O=Ostermundigen, Zollgasse@L=8577004@a=128@$A=1@O=Bern, Viktoriaplatz@L=8590021@a=128@$202105031017$202105031026$B 10$$1$$$$§G@F$A=1@O=Bern, Viktoriaplatz@L=8590021@a=128@$A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@L=990017698@a=128@$202105031026$202105031032$$$1$$$$¶GP¶ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§"}},{"cid":"C-1","date":"20210503","dur":"003300","durS":"003300","durR":"003300","chg":1,"sDays":{"sDaysR":"nicht täglich","sDaysI":"3. Mai bis 2. Jul 2021 Mo - Fr; 11. Okt bis 10. Dez 2021 Mo - Fr; nicht 13., 24. Mai","sDaysB":"7CF1E3E7CF9F3E7CF9F3E7CF9F3C3CF9F3E7CE9F1E7CF9F3E7C0000000000000000000000003E7CF9F3E7CF9F3E0"},"dep":{"locX":0,"idx":13,"dProdX":0,"dTimeS":"101000","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":3,"aTimeS":"104300","aTimeFS":{"styleX":0},"type":"N"},"secL":[{"type":"JNY","dep":{"locX":0,"idx":13,"dProdX":0,"dTimeS":"101000","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":4,"idx":23,"aProdX":0,"aPltfS":{"type":"ST","txt":"D"},"aTimeS":"102500","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|99362|0|85|3052021","prodX":1,"dirTxt":"Bern Wankdorf, Bahnhof","dirFlg":"H","status":"P","isRchbl":true,"freq":{"minC":15,"maxC":15,"numC":7},"ctxRecon":"T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern Wankdorf, Bahnhof@L=8590129@a=128@$202105031010$202105031025$B 28$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":0,"tLocX":4,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":0,"tLocX":4,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":1,"fLocX":0,"tLocX":4,"fIdx":13,"tIdx":23}],"sumLDrawStyleX":0,"resLDrawStyleX":4,"trainStartDate":"20210503","durS":"001500"},"minChg":"000200"},{"type":"JNY","dep":{"locX":4,"idx":0,"dProdX":5,"dPltfS":{"type":"ST","txt":"A"},"dTimeS":"102800","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":5,"idx":8,"aProdX":5,"aTimeS":"104000","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|94473|1|85|3052021","prodX":6,"dirTxt":"Wabern, Tram-Endstation","dirFlg":"R","status":"P","isRchbl":true,"freq":{"minC":6,"maxC":6,"numC":16},"ctxRecon":"T$A=1@O=Bern Wankdorf, Bahnhof@L=8590129@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031028$202105031040$T 9A$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":4,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":4,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":6,"fLocX":4,"tLocX":5,"fIdx":0,"tIdx":8}],"sumLDrawStyleX":7,"resLDrawStyleX":5,"trainStartDate":"20210503","durS":"001200"},"minChg":"000300"},{"type":"WALK","dep":{"locX":5,"dTimeS":"104000","dTimeFS":{"styleX":0},"type":"N"},"arr":{"locX":3,"aTimeS":"104300","aTimeFS":{"styleX":0},"type":"N"},"gis":{"dist":187,"durS":"000300","ctx":"G|1|G@F|A=1@O=Bern, Kursaal@X=7449612@Y=46952889@U=85@L=8590020@|A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@U=103@L=990017698@|3052021|104000|104300|fb|ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§||","gisPrvr":"E","getDescr":true,"getPoly":true,"sumLDrawStyleX":2,"resLDrawStyleX":6,"prodX":4}}],"freq":{"minC":15},"conSubscr":"P","recState":"U","cksum":"8c514ca1_3","cksumDti":"fd2b9580_3","intvlSubscr":"P","originType":"INITIAL","recon":{"ctx":"¶HKI¶T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern Wankdorf, Bahnhof@L=8590129@a=128@$202105031010$202105031025$B 28$$1$$$$§T$A=1@O=Bern Wankdorf, Bahnhof@L=8590129@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031028$202105031040$T 9A$$1$$$$§G@F$A=1@O=Bern, Kursaal@L=8590020@a=128@$A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@L=990017698@a=128@$202105031040$202105031043$$$1$$$$¶GP¶ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§"}},{"cid":"C-2","date":"20210503","dur":"002400","durS":"002400","durR":"002400","chg":2,"sDays":{"sDaysR":"nicht täglich","sDaysI":"3. Mai bis 2. Jul 2021 Mo - Fr; 11. Okt bis 10. Dez 2021 Mo - Fr; nicht 13., 24. Mai","sDaysB":"7CF1E3E7CF9F3E7CF9F3E7CF9F3C3CF9F3E7CE9F1E7CF9F3E7C0000000000000000000000003E7CF9F3E7CF9F3E0"},"dep":{"locX":0,"idx":10,"dProdX":7,"dTimeS":"101400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":3,"aTimeS":"103800","aTimeFS":{"styleX":0},"type":"N"},"secL":[{"type":"JNY","dep":{"locX":0,"idx":10,"dProdX":7,"dTimeS":"101400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":6,"idx":16,"aProdX":7,"aPltfS":{"type":"ST","txt":"A"},"aTimeS":"102200","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|99349|0|85|3052021","prodX":8,"dirTxt":"Bern Weissenbühl, Bahnhof","dirFlg":"R","status":"P","isRchbl":true,"freq":{"minC":15,"maxC":15,"numC":7},"ctxRecon":"T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern, Brunnadernstrasse@L=8507061@a=128@$202105031014$202105031022$B 28$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":0,"tLocX":6,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":0,"tLocX":6,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":8,"fLocX":0,"tLocX":6,"fIdx":10,"tIdx":16}],"sumLDrawStyleX":0,"resLDrawStyleX":4,"trainStartDate":"20210503","durS":"000800"},"minChg":"000200"},{"type":"JNY","dep":{"locX":6,"idx":3,"dProdX":9,"dPltfS":{"type":"ST","txt":"A"},"dTimeS":"102400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":7,"idx":7,"aProdX":9,"aPltfS":{"type":"ST","txt":"E"},"aTimeS":"103000","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|92780|0|85|3052021","prodX":10,"dirTxt":"Bern, Bümpliz","dirFlg":"R","status":"P","isRchbl":true,"freq":{"minC":1,"maxC":4,"numC":31},"ctxRecon":"T$A=1@O=Bern, Brunnadernstrasse@L=8507061@a=128@$A=1@O=Bern, Zytglogge@L=8507110@a=128@$202105031024$202105031030$T 7$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":6,"tLocX":7,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":6,"tLocX":7,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":10,"fLocX":6,"tLocX":7,"fIdx":3,"tIdx":7}],"sumLDrawStyleX":7,"resLDrawStyleX":4,"trainStartDate":"20210503","durS":"000600"},"minChg":"000200"},{"type":"JNY","dep":{"locX":7,"idx":11,"dProdX":11,"dPltfS":{"type":"ST","txt":"B"},"dTimeS":"103400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":5,"idx":12,"aProdX":11,"aTimeS":"103500","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|94325|1|85|3052021","prodX":12,"dirTxt":"Bern Wankdorf, Bahnhof","dirFlg":"H","status":"P","isRchbl":true,"freq":{"minC":6,"maxC":6,"numC":16},"ctxRecon":"T$A=1@O=Bern, Zytglogge@L=8507110@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031034$202105031035$T 9A$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":7,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":7,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":12,"fLocX":7,"tLocX":5,"fIdx":11,"tIdx":12}],"sumLDrawStyleX":7,"resLDrawStyleX":5,"trainStartDate":"20210503","durS":"000100"},"minChg":"000300"},{"type":"WALK","dep":{"locX":5,"dTimeS":"103500","dTimeFS":{"styleX":0},"type":"N"},"arr":{"locX":3,"aTimeS":"103800","aTimeFS":{"styleX":0},"type":"N"},"gis":{"dist":187,"durS":"000300","ctx":"G|1|G@F|A=1@O=Bern, Kursaal@X=7449612@Y=46952889@U=85@L=8590020@|A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@U=103@L=990017698@|3052021|103500|103800|fb|ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§||","gisPrvr":"E","getDescr":true,"getPoly":true,"sumLDrawStyleX":2,"resLDrawStyleX":6,"prodX":4}}],"freq":{"minC":15},"conSubscr":"P","recState":"U","cksum":"25206634_3","cksumDti":"8fd36177_3","intvlSubscr":"P","originType":"INITIAL","recon":{"ctx":"¶HKI¶T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern, Brunnadernstrasse@L=8507061@a=128@$202105031014$202105031022$B 28$$1$$$$§T$A=1@O=Bern, Brunnadernstrasse@L=8507061@a=128@$A=1@O=Bern, Zytglogge@L=8507110@a=128@$202105031024$202105031030$T 7$$1$$$$§T$A=1@O=Bern, Zytglogge@L=8507110@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031034$202105031035$T 9A$$1$$$$§G@F$A=1@O=Bern, Kursaal@L=8590020@a=128@$A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@L=990017698@a=128@$202105031035$202105031038$$$1$$$$¶GP¶ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§"}},{"cid":"C-3","date":"20210503","dur":"003000","durS":"003000","durR":"003000","chg":1,"sDays":{"sDaysR":"nicht täglich","sDaysI":"3. Mai bis 2. Jul 2021 Mo - Fr; 11. Okt bis 10. Dez 2021 Mo - Fr; nicht 13., 24. Mai","sDaysB":"7CF1E3E7CF9F3E7CF9F3E7CF9F3C3C0003E7CE9F1E7CF9F3E7C0000000000000000000000003E7CF9F3E7CF9F3E0"},"dep":{"locX":0,"idx":10,"dProdX":7,"dTimeS":"101400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":3,"aTimeS":"104400","aTimeFS":{"styleX":0},"type":"N"},"secL":[{"type":"JNY","dep":{"locX":0,"idx":10,"dProdX":7,"dTimeS":"101400","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":8,"idx":20,"aProdX":7,"aTimeS":"102800","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|99349|0|85|3052021","prodX":8,"dirTxt":"Bern Weissenbühl, Bahnhof","dirFlg":"R","status":"P","isRchbl":true,"freq":{"minC":15,"maxC":15,"numC":7},"ctxRecon":"T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern, Sulgenau@L=8589992@a=128@$202105031014$202105031028$B 28$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":0,"tLocX":8,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":0,"tLocX":8,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":8,"fLocX":0,"tLocX":8,"fIdx":10,"tIdx":20}],"sumLDrawStyleX":0,"resLDrawStyleX":4,"trainStartDate":"20210503","durS":"001400"},"minChg":"000200"},{"type":"JNY","dep":{"locX":8,"idx":6,"dProdX":13,"dTimeS":"103200","dTimeFS":{"styleX":0},"dProgType":"PROGNOSED","type":"N"},"arr":{"locX":5,"idx":12,"aProdX":13,"aTimeS":"104100","aTimeFS":{"styleX":0},"aProgType":"PROGNOSED","type":"N"},"jny":{"jid":"1|94363|1|85|3052021","prodX":14,"dirTxt":"Bern Wankdorf, Bahnhof","dirFlg":"H","status":"P","isRchbl":true,"freq":{"minC":6,"maxC":6,"numC":16},"ctxRecon":"T$A=1@O=Bern, Sulgenau@L=8589992@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031032$202105031041$T 9A$$1$$$$","msgL":[{"type":"REM","remX":0,"sty":"I","fLocX":8,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402653184},{"type":"REM","remX":1,"sty":"I","fLocX":8,"tLocX":5,"tagL":["RES_JNY_DTL_H3"],"sort":402784256}],"subscr":"F","prodL":[{"prodX":14,"fLocX":8,"tLocX":5,"fIdx":6,"tIdx":12}],"sumLDrawStyleX":7,"resLDrawStyleX":5,"trainStartDate":"20210503","durS":"000900"},"minChg":"000300"},{"type":"WALK","dep":{"locX":5,"dTimeS":"104100","dTimeFS":{"styleX":0},"type":"N"},"arr":{"locX":3,"aTimeS":"104400","aTimeFS":{"styleX":0},"type":"N"},"gis":{"dist":187,"durS":"000300","ctx":"G|1|G@F|A=1@O=Bern, Kursaal@X=7449612@Y=46952889@U=85@L=8590020@|A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@U=103@L=990017698@|3052021|104100|104400|fb|ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§||","gisPrvr":"E","getDescr":true,"getPoly":true,"sumLDrawStyleX":2,"resLDrawStyleX":6,"prodX":4}}],"freq":{"minC":15},"conSubscr":"P","recState":"U","cksum":"7973203e_3","cksumDti":"88829ba3_3","intvlSubscr":"P","originType":"INITIAL","recon":{"ctx":"¶HKI¶T$A=1@O=Bern, Dennigkofengässli@L=8590093@a=128@$A=1@O=Bern, Sulgenau@L=8589992@a=128@$202105031014$202105031028$B 28$$1$$$$§T$A=1@O=Bern, Sulgenau@L=8589992@a=128@$A=1@O=Bern, Kursaal@L=8590020@a=128@$202105031032$202105031041$T 9A$$1$$$$§G@F$A=1@O=Bern, Kursaal@L=8590020@a=128@$A=2@O=Bern, Schänzlihalde 17@X=7447527@Y=46952835@L=990017698@a=128@$202105031041$202105031044$$$1$$$$¶GP¶ft@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§bt@0@2000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$f@$§tt@0@5000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$t@0@25000@120@1@100@1@@0@@@@@false@0@-1@0@-1@-1@$f@$f@$f@$f@$§"}}],"outCtxScrB":"2|OB|MT#11#206530#206530#206552#206552#0#0#66021#206520#1#-2147483646#0#1#2|PDH#543228d0fe4ed78b32a984a991a91d02|RD#3052021|RT#100000|US#1","outCtxScrF":"2|OF|MT#11#206534#206534#206558#206564#0#0#485#206531#4#-2147483646#0#1#2|PDH#543228d0fe4ed78b32a984a991a91d02|RD#3052021|RT#100000|US#1","fpB":"20201213","fpE":"20211211","planrtTS":"1627314289","outConGrpSettings":{"conGrpL":[{"name":"Öffentlicher Verkehr","icoX":8,"grpid":"cl_pt","conScoringL":[{"type":"DT","name":"Abfahrt"},{"type":"TI","name":"Dauer"},{"type":"CO","name":"Preis"}],"initScoringType":"DT","requests":[{"id":"RQ_PT","autosend":true}],"scrollable":true,"bitmask":1},{"name":"Schiff","icoX":9,"grpid":"cl_pt_mix_ship","conScoringL":[{"type":"DT","name":"Abfahrt"},{"type":"TI","name":"Dauer"},{"type":"CO","name":"Preis"}],"initScoringType":"DT","requests":[{"id":"RQ_SHIP_ONLY","autosend":true},{"id":"RQ_PT_SHIP","autosend":true}],"scrollable":true,"bitmask":2},{"name":"Autoverlad","icoX":10,"grpid":"cl_cartr_only","conScoringL":[{"type":"DT","name":"Abfahrt"},{"type":"TI","name":"Dauer"},{"type":"CO","name":"Preis"}],"initScoringType":"DT","requests":[{"id":"RQ_CAR_ON_TRAIN","autosend":true}],"scrollable":true,"bitmask":4}],"selectL":[{"icoX":8,"name":"Öffentlicher Verkehr","bitIdx":0},{"icoX":9,"name":"Schiff","bitIdx":1},{"icoX":10,"name":"Autoverlad","bitIdx":2}],"variant":"RADIO"}}}]} \ No newline at end of file diff --git a/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a.headers b/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a.headers new file mode 100644 index 00000000..7f63bc6f --- /dev/null +++ b/test/e2e/fixtures/03cfb56ddfe0ed19d58f71b68c312c6a.headers @@ -0,0 +1,35 @@ +{ + "statusCode": 200, + "headers": { + "date": "Mon, 26 Jul 2021 15:45:01 GMT", + "server": "Apache", + "content-length": "3720", + "connection": "close", + "content-type": "application/json; charset=utf-8" + }, + "url": "https://bls.hafas.de/bin/mgate.exe", + "time": 1023, + "request": { + "method": "POST", + "headers": { + "Content-Type": [ + "application/json" + ], + "Accept-Encoding": [ + "gzip, br, deflate" + ], + "Accept": [ + "application/json" + ], + "user-agent": [ + "pu1a6b1bee0fa6blic-transport/hafas-client:test" + ], + "Content-Length": [ + "706" + ], + "Connection": [ + "close" + ] + } + } +} \ No newline at end of file diff --git a/tools/pull-profile-base-data.sh b/tools/pull-profile-base-data.sh index ca15e558..29a836cb 100755 --- a/tools/pull-profile-base-data.sh +++ b/tools/pull-profile-base-data.sh @@ -61,4 +61,5 @@ node -p "$query" "$src/de/vos-hafas-mgate.json" >../p/vos/base.json node -p "$query" "$src/de/vrn-hafas-mgate.json" >../p/vrn/base.json node -p "$query" "$src/de/vsn-hafas-mgate.json" >../p/vsn/base.json node -p "$query" "$src/at/vvt-hafas-mgate.json" >../p/vvt/base.json +node -p "$query" "$src/ch/bls-hafas-mgate.json" >../p/bls/base.json node -p "$query" "$src/ch/zvv-hafas-mgate.json" >../p/zvv/base.json diff --git a/tools/transport-apis b/tools/transport-apis index 03095950..14ba39a4 160000 --- a/tools/transport-apis +++ b/tools/transport-apis @@ -1 +1 @@ -Subproject commit 03095950efe3e938eeb262b4a79180fb9a279fb6 +Subproject commit 14ba39a48a441e6819a7e0627d5e8701c5a0f60d