turboself-api
Version:
A wrapper around Turboself internal API.
1 lines • 66.1 kB
Source Map (JSON)
{"version":3,"sources":["../src/rest/RESTManager.ts","../src/rest/endpoints.ts","../src/structures/Balance.ts","../src/structures/Payment.ts","../src/structures/HistoryEvent.ts","../src/structures/Booking.ts","../src/structures/Terminal.ts","../src/structures/BookingDay.ts","../src/utils/weekRange.ts","../src/structures/Establishment.ts","../src/structures/Host.ts","../src/utils/transformers.ts","../src/routes/Host.ts","../src/routes/Account.ts","../src/routes/Establishment.ts","../src/routes/Payment.ts","../src/utils/authenticate.ts","../src/structures/Client.ts"],"names":["responseData","manager"],"mappings":";AAGO,IAAM,cAAN,MAAkB;AAAA,EAGvB,YAAY,OAAiB,EAAA;AAC3B,IAAA,IAAA,CAAK,OAAU,GAAA,OAAA;AAAA;AACjB,EAEA,MAAc,YAAe,OAAqC,EAAA;AAChE,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAM,EAAA,IAAA,EAAM,SAAY,GAAA,OAAA;AACxC,IAAA,MAAM,GAAM,GAAA,CAAA,EAAG,IAAK,CAAA,OAAO,IAAI,IAAI,CAAA,CAAA;AAEnC,IAAM,MAAA,QAAA,GAAW,MAAM,KAAA,CAAM,GAAK,EAAA;AAAA,MAChC,MAAA;AAAA,MACA,IAAM,EAAA,IAAA,GAAO,IAAK,CAAA,SAAA,CAAU,IAAI,CAAI,GAAA,MAAA;AAAA,MACpC,OAAS,EAAA;AAAA,QACP,cAAgB,EAAA,kBAAA;AAAA,QAChB,GAAG,OAAA;AAAA,QACH,YAAc,EAAA;AAAA;AAChB,KACD,CAAA;AAED,IAAI,IAAA,CAAC,SAAS,EAAI,EAAA;AAChB,MAAMA,MAAAA,aAAAA,GAAe,MAAM,QAAA,CAAS,IAAK,EAAA;AACzC,MAAM,MAAA,IAAI,KAAM,CAAA,CAAA,EAAG,QAAS,CAAA,MAAM,KAAK,IAAK,CAAA,SAAA,CAAUA,aAAY,CAAC,CAAE,CAAA,CAAA;AAAA;AAGvE,IAAM,MAAA,YAAA,GAAe,MAAM,QAAA,CAAS,IAAK,EAAA;AACzC,IAAO,OAAA,YAAA;AAAA;AACT,EAEA,MAAM,GACJ,CAAA,IAAA,EACA,OACY,EAAA;AACZ,IAAA,OAAO,KAAK,WAAe,CAAA;AAAA,MACzB,MAAQ,EAAA,KAAA;AAAA,MACR,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA;AACH,EAEA,MAAM,IAAA,CACJ,IACA,EAAA,IAAA,EACA,OACY,EAAA;AACZ,IAAA,OAAO,KAAK,WAAe,CAAA;AAAA,MACzB,MAAQ,EAAA,MAAA;AAAA,MACR,IAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAS,OAAS,EAAA;AAAA,KACnB,CAAA;AAAA;AACH,EAEA,MAAM,GAAA,CACJ,IACA,EAAA,IAAA,EACA,OACY,EAAA;AACZ,IAAA,OAAO,KAAK,WAAe,CAAA;AAAA,MACzB,MAAQ,EAAA,KAAA;AAAA,MACR,IAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAS,OAAS,EAAA;AAAA,KACnB,CAAA;AAAA;AACH,EAEA,MAAM,MAAA,CACJ,IACA,EAAA,MAAA,EACA,OACY,EAAA;AACZ,IAAA,MAAM,SAAY,GAAA,IAAI,eAAgB,CAAA,MAAM,EAAE,QAAS,EAAA;AACvD,IAAA,MAAM,UAAU,SAAY,GAAA,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,SAAS,CAAK,CAAA,GAAA,IAAA;AACrD,IAAA,OAAO,KAAK,WAAe,CAAA;AAAA,MACzB,MAAQ,EAAA,QAAA;AAAA,MACR,IAAM,EAAA,OAAA;AAAA,MACN,SAAS,OAAS,EAAA;AAAA,KACnB,CAAA;AAAA;AAEL,CAAA;;;AChFO,IAAM,aAAa,MAAM,eAAA;AAEzB,IAAM,mBAAsB,GAAA,CAAC,KAAkB,KAAA,CAAA,+BAAA,EAAkC,KAAK,CAAA,CAAA;AACtF,IAAM,uBAAuB,MAAM,0BAAA;AAKnC,IAAM,IAAO,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,CAAA;AACnD,IAAM,YAAe,GAAA,CAAC,MAAmB,KAAA,CAAA,iBAAA,EAAoB,MAAM,CAAA,EAAA,CAAA;AACnE,IAAM,SAAY,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,QAAA,CAAA;AAExD,IAAM,aAAgB,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,cAAA,CAAA;AAC5D,IAAM,iBAAoB,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,UAAA,CAAA;AAChE,IAAM,mBAAsB,GAAA,CAAC,MAAmB,KAAA,CAAA,qBAAA,EAAwB,MAAM,CAAA,CAAA;AAC9E,IAAM,iBAAoB,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,eAAA,CAAA;AAGhE,IAAM,iBAAA,GAAoB,CAAC,MAAgB,EAAA,IAAA,KAAkB,yBAAyB,MAAM,CAAA,SAAA,EAAY,OAAU,GAAA,IAAA,IAAQ,EAAE,CAAA,CAAA;AAE5H,IAAM,cAAiB,GAAA,CAAC,MAAmB,KAAA,CAAA,SAAA,EAAY,MAAM,CAAA,mBAAA,CAAA;AAE7D,IAAM,qBAAwB,GAAA,CAAC,IAAiB,KAAA,CAAA,0BAAA,EAA6B,IAAI,CAAA,CAAA;AACjF,IAAM,mBAAsB,GAAA,CAAC,eAA4B,KAAA,CAAA,yBAAA,EAA4B,eAAe,CAAA,CAAA;AACpG,IAAM,oBAAA,GAAuB,CAAC,KAAA,EAAe,IAAc,EAAA,KAAA,KAAkB,uBAAuB,KAAK,CAAA,SAAA,EAAY,IAAI,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAIxI,IAAM,iBAAoB,GAAA,CAAC,YAAyB,KAAA,CAAA,qBAAA,EAAwB,YAAY,CAAA,CAAA;;;AC/BxF,IAAM,UAAN,MAAc;AAAA,EACjB,YAEW,EAEA,EAAA,MAAA,EAEA,KAEA,EAAA,MAAA,EAEA,iBAEA,aACT,EAAA;AAXS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,eAAA,GAAA,eAAA;AAEA,IAAA,IAAA,CAAA,aAAA,GAAA,aAAA;AAAA;AAEf;;;ACfO,IAAM,UAAN,MAAc;AAAA,EACjB,WAAA,CAEW,IAEA,MAEA,EAAA,MAAA,EAEA,QAEA,KAEA,EAAA,GAAA,EAEA,SAEA,EAAA,SAAA,EAEA,IACT,EAAA;AAjBS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAEA,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAEA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAEA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AAGf;;;ACtBO,IAAM,eAAN,MAAmB;AAAA,EACtB,WAEW,CAAA,EAAA,EAEA,IAEA,EAAA,KAAA,EAEA,MACT,EAAA;AAPS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA;AAGf;;;ACTO,IAAM,UAAN,MAAc;AAAA,EACjB,YAEW,EAEA,EAAA,IAAA,EAEA,QAEA,IAEA,EAAA,EAAA,EAEA,UAEA,IACT,EAAA;AAbS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AAEf;;;ACpBO,IAAM,WAAN,MAAe;AAAA,EAClB,WAEW,CAAA,EAAA,EAEA,OAEA,EAAA,IAAA,EAEA,MACA,MAUT,EAAA;AAjBS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA;AAWf;;;ACnBO,IAAM,aAAN,MAAiB;AAAA,EACpB,WAAA,CACY,OAED,MAEA,EAAA,EAAA,EAEA,QAEA,OAEA,EAAA,SAAA,EAEA,OAEA,EAAA,YAAA,EAEA,IACT,EAAA;AAjBU,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAED,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAEA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAEA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA;AACR,EAEH,MAAM,IAAA,CAAK,YAAe,GAAA,CAAA,EAAG,cAAc,KAA4B,EAAA;AACnE,IAAA,IAAA,CAAK,SAAS,YAAe,GAAA,CAAA;AAC7B,IAAA,OAAO,QAAS,CAAA,IAAA,CAAK,KAAO,EAAA,IAAA,CAAK,MAAQ,EAAA,IAAA,CAAK,EAAI,EAAA,IAAA,CAAK,IAAK,CAAA,MAAA,EAAU,EAAA,YAAA,EAAc,WAAW,CAAA;AAAA;AAEvG;;;AC3BO,SAAS,YAAA,CAAa,YAAoB,IAAyC,EAAA;AACtF,EAAc,UAAA,IAAA,CAAA;AACd,EAAA,MAAM,cAAiB,GAAA,IAAI,IAAK,CAAA,IAAA,EAAM,GAAG,CAAC,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAY,eAAe,MAAO,EAAA;AACxC,EAAA,MAAM,iBAAqB,GAAA,SAAA,KAAc,CAAK,GAAA,CAAA,GAAK,CAAI,GAAA,SAAA;AACvD,EAAM,MAAA,WAAA,GAAc,IAAI,IAAA,CAAK,cAAc,CAAA;AAC3C,EAAA,WAAA,CAAY,OAAQ,CAAA,cAAA,CAAe,OAAQ,EAAA,GAAI,iBAAiB,CAAA;AAChE,EAAM,MAAA,aAAA,GAAgB,IAAI,IAAA,CAAK,WAAW,CAAA;AAC1C,EAAA,aAAA,CAAc,OAAQ,CAAA,WAAA,CAAY,OAAQ,EAAA,GAAI,aAAa,CAAC,CAAA;AAC5D,EAAM,MAAA,WAAA,GAAc,IAAI,IAAA,CAAK,aAAa,CAAA;AAC1C,EAAA,WAAA,CAAY,OAAQ,CAAA,aAAA,CAAc,OAAQ,EAAA,GAAI,CAAC,CAAA;AAC/C,EAAA,aAAA,CAAc,QAAS,CAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,CAAC,CAAA;AACjC,EAAA,WAAA,CAAY,QAAS,CAAA,EAAA,EAAI,EAAI,EAAA,EAAA,EAAI,GAAG,CAAA;AACpC,EAAM,MAAA,cAAA,GAAiB,aAAc,CAAA,iBAAA,EAAsB,GAAA,GAAA;AAC3D,EAAA,MAAM,YAAY,IAAI,IAAA,CAAK,aAAc,CAAA,OAAA,KAAY,cAAc,CAAA;AACnE,EAAA,MAAM,UAAU,IAAI,IAAA,CAAK,WAAY,CAAA,OAAA,KAAY,cAAc,CAAA;AAC/D,EAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,EAAA,EAAI,OAAQ,EAAA;AAC1C;;;ACNO,IAAM,gBAAN,MAAoB;AAAA,EACvB,YAEW,EAEA,EAAA,IAAA,EAEA,gBAEA,IAEA,EAAA,OAAA,EAEA,KAEA,UAEA,EAAA,IAAA,EAEA,gBAEA,EAAA,eAAA,EAEA,mBAEA,QACA,EAAA,QAAA,EACA,UACA,OACA,EAAA,WAAA,EACA,KACA,eACT,EAAA;AA7BS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAEA,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAEA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AAEA,IAAA,IAAA,CAAA,eAAA,GAAA,eAAA;AAEA,IAAA,IAAA,CAAA,iBAAA,GAAA,iBAAA;AAEA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AACA,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AACA,IAAA,IAAA,CAAA,eAAA,GAAA,eAAA;AAAA;AAGf;;;AC3CO,IAAM,OAAN,MAAW;AAAA,EACd,WAEW,CAAA,EAAA,EAEA,OACA,EAAA,MAAA,EAEA,SAEA,EAAA,QAAA,EAEA,IAEA,EAAA,OAAA,EAEA,QAEA,EAAA,UAAA,EAEA,IAEA,EAAA,UAAA,EAEA,cACA,WAYT,EAAA;AAlCS,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAEA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAEA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAEA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAEA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAEA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAEA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AAAA;AAef;;;ACrCA,SAAS,yBAAyB,aAA+G,EAAA;AAC7I,EAAA,OAAQ,cAAyC,EAAO,KAAA,MAAA;AAC5D;AAEO,SAAS,yBAAyB,aAAqF,EAAA;AAC1H,EAAA,OAAO,IAAI,aAAA;AAAA,IACP,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,MAAM,CAAK,GAAA,CAAA;AAAA,IACpE,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,GAAA,IAAO,QAAS,aAAc,CAAA,GAAA;AAAA,IACvF,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,kBAAkB,IAAQ,GAAA,IAAA;AAAA,IACnF,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,OAAA,IAAW,OAAQ,aAAc,CAAA,OAAA;AAAA,IAC1F,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,WAAW,IAAQ,GAAA,IAAA;AAAA,IAC5E,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,WAAW,IAAQ,GAAA,IAAA;AAAA,IAC5E,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,aAAa,IAAQ,GAAA,IAAA;AAAA,IAC9E,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,aAAA,EAAe,cAAc,EAAM,GAAA,iDAAA;AAAA,IAC5F,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,aAAA,EAAe,eAAe,CAAK,GAAA,IAAA;AAAA,IAC5F,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,aAAA,EAAe,eAAe,CAAK,GAAA,IAAA;AAAA,IAC5F,yBAAyB,aAAa,CAAA,GAAK,aAAc,CAAA,aAAA,EAAe,qBAAqB,CAAK,GAAA,IAAA;AAAA,IAClG,wBAAyB,CAAA,aAAa,CAAK,GAAA,aAAA,CAAc,aAAa,KAAS,GAAA,IAAA;AAAA,IAC/E,yBAAyB,aAAa,CAAA,GAAK,cAAc,aAAe,EAAA,UAAA,EAAY,IAAI,CAAY,OAAA,MAAA;AAAA,MAChG,IAAS,OAAQ,CAAA,EAAA;AAAA,MACjB,OAAA,EAAS,CAAC,OAAQ,CAAA,GAAA;AAAA,MAClB,MAAA,EAAS,CAAC,OAAQ,CAAA,QAAA;AAAA,MAClB,IAAS,EAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,EAAE,CAAA;AAAA,MAC5B,EAAS,EAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,EAAE;AAAA,KAC9B,CAAA,CAAA,IAAK,EAAC,GAAK,EAAC;AAAA,IACd,wBAAA,CAAyB,aAAa,CAAK,GAAA;AAAA,MACvC,MAAU,aAAc,CAAA,KAAA;AAAA,MACxB,OAAU,EAAA,aAAA,CAAc,IAAO,GAAA,GAAA,GAAM,aAAc,CAAA,IAAA;AAAA,MACnD,UAAU,aAAc,CAAA;AAAA,KACvB,GAAA;AAAA,MACD,IAAU,EAAA,IAAA;AAAA,MACV,OAAU,EAAA,IAAA;AAAA,MACV,QAAU,EAAA;AAAA,KACd;AAAA,IACA,wBAAA,CAAyB,aAAa,CAAK,GAAA;AAAA,MACvC,WAAA,EAAa,cAAc,GAAO,IAAA,IAAA;AAAA,MAClC,SAAA,EAAa,cAAc,GAAO,IAAA,IAAA;AAAA,MAClC,KAAA,EAAa,aAAc,CAAA,aAAA,EAAe,KAAS,IAAA,IAAA;AAAA,MACnD,OAAA,EAAa,aAAc,CAAA,aAAA,EAAe,GAAO,IAAA;AAAA,KAChD,GAAA;AAAA,MACD,WAAa,EAAA,IAAA;AAAA,MACb,SAAa,EAAA,IAAA;AAAA,MACb,KAAa,EAAA,IAAA;AAAA,MACb,OAAa,EAAA;AAAA,KACjB;AAAA,IACA,wBAAA,CAAyB,aAAa,CAAK,GAAA;AAAA,MACvC,2BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,6BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,6BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,+BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,2BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,6BAAA,EAAiC,aAAc,CAAA,iBAAA,EAAmB,aAAiB,IAAA,IAAA;AAAA,MACnF,aAAA,EAAiC,aAAc,CAAA,aAAA,EAAe,mBAAuB,IAAA,IAAA;AAAA,MACrF,eAAA,EAAiC,aAAc,CAAA,aAAA,EAAe,uBAA2B,IAAA,IAAA;AAAA,MACzF,aAAA,EAAiC,aAAc,CAAA,aAAA,EAAe,uBAA2B,IAAA,IAAA;AAAA,MACzF,WAAA,EAAiC,aAAc,CAAA,aAAA,EAAe,gBAAoB,IAAA;AAAA,KACjF,GAAA;AAAA,MACD,2BAAiC,EAAA,IAAA;AAAA,MACjC,6BAAiC,EAAA,IAAA;AAAA,MACjC,6BAAiC,EAAA,IAAA;AAAA,MACjC,+BAAiC,EAAA,IAAA;AAAA,MACjC,2BAAiC,EAAA,IAAA;AAAA,MACjC,6BAAiC,EAAA,IAAA;AAAA,MACjC,aAAiC,EAAA,IAAA;AAAA,MACjC,eAAiC,EAAA,IAAA;AAAA,MACjC,aAAiC,EAAA,IAAA;AAAA,MACjC,WAAiC,EAAA;AAAA,KACrC;AAAA,IACA,wBAAA,CAAyB,aAAa,CAAK,GAAA;AAAA,MACvC,EAAY,EAAA,aAAA,CAAc,aAAe,EAAA,GAAA,EAAK,EAAM,IAAA,IAAA;AAAA,MACpD,OAAY,EAAA,aAAA,CAAc,aAAe,EAAA,GAAA,EAAK,OAAW,IAAA,IAAA;AAAA,MACzD,OAAY,EAAA,aAAA,CAAc,aAAe,EAAA,GAAA,EAAK,OAAW,IAAA,IAAA;AAAA,MACzD,UAAY,EAAA,aAAA,CAAc,aAAe,EAAA,GAAA,EAAK,UAAc,IAAA,IAAA;AAAA,MAC5D,OAAY,EAAA,aAAA,CAAc,aAAe,EAAA,GAAA,EAAK,OAAW,IAAA;AAAA,KACxD,GAAA;AAAA,MACD,EAAY,EAAA,IAAA;AAAA,MACZ,OAAY,EAAA,IAAA;AAAA,MACZ,OAAY,EAAA,IAAA;AAAA,MACZ,UAAY,EAAA,IAAA;AAAA,MACZ,OAAY,EAAA;AAAA,KAChB;AAAA,IACA,wBAAA,CAAyB,aAAa,CAAK,GAAA;AAAA,MACvC,SAAW,EAAA,IAAI,IAAK,CAAA,aAAA,CAAc,mBAAmB,CAAC,CAAA;AAAA,MACtD,QAAW,EAAA,IAAI,IAAK,CAAA,aAAA,CAAc,mBAAmB,CAAC;AAAA,KACrD,GAAA;AAAA,MACD,SAAA,kBAAe,IAAA,IAAA,CAAK,CAAC,CAAA;AAAA,MACrB,QAAA,kBAAe,IAAA,IAAA,CAAK,CAAC;AAAA;AACzB,GACJ;AACJ;AAEO,SAAS,gBAAgB,IAA2B,EAAA;AACvD,EAAA,OAAO,IAAI,IAAA;AAAA,IACP,IAAK,CAAA,EAAA;AAAA,IACL,IAAK,CAAA,MAAA;AAAA,IACL,KAAK,IAAK,CAAA,EAAA;AAAA,IACV,IAAK,CAAA,MAAA;AAAA,IACL,IAAK,CAAA,GAAA;AAAA,IACL,IAAK,CAAA,IAAA;AAAA,IACL,IAAK,CAAA,OAAA;AAAA,IACL,IAAK,CAAA,QAAA;AAAA,IACL,IAAK,CAAA,OAAA;AAAA,IACL,IAAK,CAAA,IAAA;AAAA,IACL,IAAK,CAAA,UAAA;AAAA,IACL,KAAK,YAAgB,IAAA,IAAA;AAAA,IACrB;AAAA,MACI,OAAA,EAAyB,KAAK,aAAiB,IAAA,KAAA;AAAA,MAC/C,WAAA,EAAyB,KAAK,gBAAoB,IAAA,KAAA;AAAA,MAClD,SAAA,EAAyB,KAAK,cAAkB,IAAA,KAAA;AAAA,MAChD,yBAAyB,IAAK,CAAA,sBAAA;AAAA,MAC9B,aAAyB,IAAK,CAAA;AAAA;AAClC,GACJ;AACJ;;;ACvFA,IAAM,OAAA,GAAU,IAAI,WAAA,CAAY,mCAAmC,CAAA;AAEtD,IAAA,OAAA,GAAU,OAAO,KAAA,EAAe,MAAkC,KAAA;AAC3E,EAAA,MAAM,UAAa,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAmB,IAAK,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AAEtG,EAAA,OAAO,gBAAgB,UAAU,CAAA;AACrC;AAEa,IAAA,WAAA,GAAc,OAAO,KAAA,EAAe,MAA4C,KAAA;AACzF,EAAA,MAAM,aAAgB,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAiC,YAAa,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AAC/H,EAAA,MAAM,WAA2B,EAAC;AAClC,EAAA,KAAA,MAAW,WAAW,aAAe,EAAA;AACjC,IAAM,MAAA,UAAA,GAAa,OAAQ,CAAA,gBAAA,GACrB,OAAQ,CAAA,gBAAA,CAAiB,KAAM,CAAA,2BAA2B,CAAG,EAAA,KAAA,CAAM,CAAG,EAAA,CAAC,CACvE,GAAA,MAAA;AACN,IAAI,IAAA,IAAA,uBAAW,IAAK,EAAA;AACpB,IAAA,IAAI,UAAY,EAAA;AACZ,MAAO,IAAA,GAAA,IAAI,KAAK,QAAS,CAAA,UAAA,CAAW,CAAC,CAAG,EAAA,EAAE,GAAG,QAAS,CAAA,UAAA,CAAW,CAAC,CAAG,EAAA,EAAE,IAAI,CAAG,EAAA,QAAA,CAAS,WAAW,CAAC,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA;AAE7G,IAAA,QAAA,CAAS,KAAK,IAAI,OAAA;AAAA,MACd,OAAQ,CAAA,EAAA;AAAA,MACR,QAAQ,IAAK,CAAA,EAAA;AAAA,MACb,QAAQ,KAAM,CAAA,GAAA;AAAA,MACd,OAAQ,CAAA,OAAA;AAAA,MACR,OAAQ,CAAA,aAAA;AAAA,MACR;AAAA,KACH,CAAA;AAAA;AAGL,EAAO,OAAA,QAAA;AACX;AAGO,IAAM,WAAc,GAAA,OAAO,KAAe,EAAA,MAAA,EAAgB,MAAqC,KAAA;AAClG,EAAA,MAAM,iBAAiB,MAAM,OAAA,CAAQ,KAA2B,iBAAkB,CAAA,MAAM,GAAG,CAAC;AAAA,IACxF,eAAiB,EAAA;AAAA,MACb,IAAM,EAAA;AAAA,QACF,EAAI,EAAA;AAAA;AACR,KACJ;AAAA,IACA,OAAS,EAAA;AAAA,GACZ,CAAG,EAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACL,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAClC,GACH,CAAA;AACD,EAAA,OAAO,IAAI,OAAA;AAAA,IACP,IAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAe,CAAA,KAAA;AAAA,IACf,cAAe,CAAA,WAAA;AAAA,IACf,0EAA0E,cAAe,CAAA,KAAA;AAAA,IACzF,0EAA0E,cAAe,CAAA,KAAA;AAAA,wBACrF,IAAK;AAAA,GACb;AACJ;AAEa,IAAA,UAAA,GAAa,OAAO,KAAA,EAAe,MAAiD,KAAA;AAC7F,EAAA,MAAM,UAAa,GAAA,MAAM,OAAQ,CAAA,GAAA,CAA0B,mBAAoB,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AAC5H,EAAA,MAAM,UAA+B,EAAC;AACtC,EAAA,KAAA,MAAW,SAAS,UAAY,EAAA;AAC5B,IAAA,OAAA,CAAQ,KAAK,IAAI,YAAA;AAAA,MACb,KAAM,CAAA,EAAA;AAAA,MACN,IAAI,IAAK,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,MACnB,KAAM,CAAA,MAAA;AAAA,MAAA,CACL,KAAM,CAAA,MAAA,IAAU,CAAM,KAAA,KAAA,CAAM,KAAS,IAAA,CAAA;AAAA,KACzC,CAAA;AAAA;AAGL,EAAO,OAAA,OAAA;AACX;AAEO,IAAM,eAAkB,GAAA,OAAO,KAAe,EAAA,MAAA,EAAgB,OAA2C,KAAA;AAC5G,EAAA,MAAM,UAAa,GAAA,MAAM,OAAQ,CAAA,GAAA,CAA0B,mBAAoB,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AAC5H,EAAA,MAAM,QAAQ,UAAW,CAAA,IAAA,CAAK,CAAW,OAAA,KAAA,OAAA,CAAQ,OAAO,OAAO,CAAA;AAE/D,EAAA,IAAI,CAAC,KAAA,EAAa,MAAA,IAAI,MAAM,iBAAiB,CAAA;AAE7C,EAAA,OAAO,IAAI,YAAA;AAAA,IACP,KAAM,CAAA,EAAA;AAAA,IACN,IAAI,IAAK,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,IACnB,KAAM,CAAA,MAAA;AAAA,IAAA,CACL,KAAM,CAAA,MAAA,IAAU,CAAM,KAAA,KAAA,CAAM,KAAS,IAAA,CAAA;AAAA,GAC1C;AACJ;AAEa,IAAA,cAAA,GAAiB,OAAO,KAAA,EAAe,MAAqC,KAAA;AACrF,EAAA,MAAM,UAAc,GAAA,CAAA,MAAM,OAAQ,CAAA,GAAA,CAAuB,SAAU,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAG,EAAA,cAAA;AACnH,EAAA,OAAO,IAAI,OAAA;AAAA,IACP,UAAW,CAAA,EAAA;AAAA,IACX,MAAA;AAAA,IACA,UAAW,CAAA,OAAA;AAAA,IACX,UAAW,CAAA,MAAA;AAAA,IACX,UAAW,CAAA,KAAA;AAAA,IACX,IAAA;AAAA,IACA,0EAA0E,UAAW,CAAA,KAAA;AAAA,IACrF,0EAA0E,UAAW,CAAA,KAAA;AAAA,IACrF,IAAI,IAAK,CAAA,UAAA,CAAW,IAAI;AAAA,GAC5B;AACJ;AAEO,IAAM,cAAiB,GAAA,OAAO,KAAe,EAAA,MAAA,KAAqC,QAAQ,GAAa,CAAA,iBAAA,CAAkB,MAAM,CAAA,EAAG,EAAE,aAAA,EAAe,CAAU,OAAA,EAAA,KAAK,IAAI;AAEtK,IAAM,WAAc,GAAA,OAAO,KAAe,EAAA,MAAA,EAAgB,IAA2C,KAAA;AACxG,EAAA,MAAM,UAAa,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAsB,iBAAkB,CAAA,MAAA,EAAQ,IAAI,CAAA,EAAG,EAAE,aAAA,EAAe,CAAU,OAAA,EAAA,KAAK,IAAI,CAAA;AAC5H,EAAA,IAAI,CAAC,UAAA,CAAW,SAAU,CAAA,CAAC,CAAG,EAAA;AAC1B,IAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA;AAAA;AAErD,EAAM,MAAA,SAAA,GAAY,YAAa,CAAA,UAAA,CAAW,SAAU,CAAA,CAAC,CAAE,CAAA,OAAA,EAAS,UAAW,CAAA,SAAA,CAAU,CAAC,CAAA,CAAE,KAAK,CAAA;AAC7F,EAAA,MAAM,WAAW,EAAC;AAClB,EAAW,KAAA,MAAA,aAAA,IAAiB,WAAW,SAAW,EAAA;AAC9C,IAAA,MAAM,OAAO,EAAC;AAEd,IAAW,KAAA,MAAA,MAAA,IAAU,cAAc,KAAO,EAAA;AACtC,MAAA,IAAA,CAAK,KAAK,IAAI,UAAA;AAAA,QACV,KAAA;AAAA,QACA,MAAA;AAAA,QACA,aAAc,CAAA,EAAA;AAAA,QACd,OAAO,SAAY,GAAA,CAAA;AAAA,QACnB,MAAO,CAAA,QAAA;AAAA,QACP,MAAO,CAAA,SAAA;AAAA,QACP,OAAO,GAAO,IAAA,EAAA;AAAA,QACd,MAAO,CAAA,SAAA;AAAA,QACP,IAAI,KAAK,SAAU,CAAA,IAAA,CAAK,SAAa,GAAA,CAAA,MAAA,CAAO,SAAY,GAAA,CAAA,IAAK,KAAQ;AAAA,OACxE,CAAA;AAAA;AAGL,IAAA,QAAA,CAAS,KAAK,IAAI,OAAA;AAAA,MACd,aAAc,CAAA,EAAA;AAAA,MACd,aAAc,CAAA,OAAA;AAAA,MACd,cAAc,IAAK,CAAA,EAAA;AAAA,MACnB,SAAU,CAAA,IAAA;AAAA,MACV,SAAU,CAAA,EAAA;AAAA,MACV,IAAI,QAAA;AAAA,QACA,cAAc,KAAM,CAAA,EAAA;AAAA,QACpB,cAAc,KAAM,CAAA,MAAA;AAAA,QACpB,cAAc,KAAM,CAAA,OAAA;AAAA,QACpB,cAAc,KAAM,CAAA,GAAA;AAAA,QACpB,aAAc,CAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,CAAU,KAAA,MAAA;AAAA,UACnC,IAAS,KAAM,CAAA,EAAA;AAAA,UACf,SAAS,KAAM,CAAA,MAAA;AAAA,UACf,MAAS,KAAM,CAAA,GAAA;AAAA,UACf,OAAS,KAAM,CAAA;AAAA,SACjB,CAAA;AAAA,OACN;AAAA,MACA;AAAA,KACH,CAAA;AAAA;AAGL,EAAO,OAAA,QAAA;AACX;AAEa,IAAA,QAAA,GAAW,OAAO,KAAe,EAAA,MAAA,EAAgB,QAAgB,GAAa,EAAA,YAAA,GAAe,CAAG,EAAA,WAAA,GAAc,KAA+B,KAAA;AACtJ,EAAA,MAAM,UAAU,MAAM,OAAA,CAAQ,IAAoB,CAAA,cAAA,CAAe,MAAM,CAAG,EAAA;AAAA,IACtE,SAAW,EAAA,GAAA;AAAA,IACX,SAAW,EAAA,YAAA;AAAA,IACX,GAAW,EAAA;AAAA,MACP,EAAI,EAAA;AAAA,KACR;AAAA,IACA,qBAAuB,EAAA;AAAA,GACxB,EAAA;AAAA,IACC,OAAS,EAAA;AAAA,MACL,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAClC,GACH,CAAA;AAED,EAAA,OAAO,IAAI,UAAA;AAAA,IACP,KAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAQ,CAAA,EAAA;AAAA,IACR,QAAQ,SAAY,GAAA,CAAA;AAAA,IACpB,IAAA;AAAA,IACA,OAAQ,CAAA,SAAA;AAAA,IACR,QAAQ,GAAO,IAAA,EAAA;AAAA,IACf,OAAQ,CAAA,SAAA;AAAA,wBACJ,IAAK;AAAA,GACb;AACJ;AAEa,IAAA,eAAA,GAAkB,OAAO,KAAA,EAAe,MAAyC,KAAA;AAC1F,EAAA,MAAM,WAAc,GAAA,MAAM,OAAQ,CAAA,GAAA,CAA0B,aAAc,CAAA,MAAM,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AACvH,EAAA,MAAM,WAAwB,EAAC;AAC/B,EAAA,KAAA,MAAW,cAAc,WAAa,EAAA;AAClC,IAAS,QAAA,CAAA,IAAA,CAAK,eAAgB,CAAA,UAAU,CAAC,CAAA;AAAA;AAG7C,EAAO,OAAA,QAAA;AACX;;;ACxNA,IAAMC,QAAAA,GAAU,IAAI,WAAA,CAAY,mCAAmC,CAAA;AAEtD,IAAA,oBAAA,GAAuB,OAAO,KAAoC,KAAA;AAC3E,EAAA,MAAM,0BAA0B,MAAMA,QAAAA,CAAQ,GAAmC,CAAA,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAC3G,EAAI,IAAA,uBAAA,CAAwB,QAAS,CAAA,MAAA,KAAW,CAAG,EAAA;AAC/C,IAAM,MAAA,IAAI,MAAM,CAA0C,uCAAA,EAAA,uBAAA,CAAwB,SAAS,IAAK,CAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAAA;AAE3G,EAAO,OAAA,IAAA;AACX;AAEO,IAAM,YAAe,GAAA,OAAO,IAAc,EAAA,cAAA,EAAwB,UAAkB,KAAmC,KAAA;AAC1H,EAAA,MAAM,iBAAoB,GAAA,MAAMA,QAAQ,CAAA,GAAA,CAA6B,sBAAwB,EAAA;AAAA,IACzF,EAAa,EAAA,IAAA;AAAA,IACb,QAAa,EAAA,cAAA;AAAA,IACb,WAAa,EAAA;AAAA,GACd,EAAA;AAAA,IACC,OAAS,EAAA;AAAA,MACL,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAClC,GACH,CAAA;AAED,EAAA,OAAO,iBAAkB,CAAA,KAAA;AAC7B;;;ACpBA,IAAMA,QAAAA,GAAU,IAAI,WAAA,CAAY,mCAAmC,CAAA;AAEtD,IAAA,oBAAA,GAAuB,OAAO,KAAe,EAAA,IAAA,GAAO,IAAI,KAAQ,GAAA,EAAA,EAAI,UAAa,GAAA,KAAA,EAAO,KAAkD,KAAA;AACnJ,EAAM,MAAA,sBAAA,GAAyB,MAAMA,QAAQ,CAAA,GAAA,CAAyC,qBAAqB,KAAO,EAAA,IAAA,EAAM,KAAK,CAAC,CAAA;AAE9H,EAAA,MAAM,iBAAuC,EAAC;AAC9C,EAAI,IAAA,KAAA,IAAS,CAAC,UAAY,EAAA;AACtB,IAAA,KAAA,MAAW,iBAAiB,sBAAwB,EAAA;AAChD,MAAA,cAAA,CAAe,KAAK,MAAM,qBAAA,CAAsB,KAAO,EAAA,aAAA,CAAc,OAAO,CAAC,CAAA;AAAA;AACjF,GACG,MAAA;AACH,IAAA,KAAA,MAAW,iBAAiB,sBAAwB,EAAA;AAChD,MAAe,cAAA,CAAA,IAAA,CAAK,wBAAyB,CAAA,aAAa,CAAC,CAAA;AAAA;AAC/D;AAIJ,EAAO,OAAA,cAAA;AACX;AAEa,IAAA,qBAAA,GAAwB,OAAO,KAAA,EAAe,OAA4C,KAAA;AACnG,EAAA,MAAM,sBAAsB,MAAMA,QAAAA,CAAQ,GAAmC,CAAA,qBAAA,CAAsB,OAAO,CAAG,EAAA;AAAA,IACzG,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA,GACjC,CAAA;AACD,EAAI,IAAA,mBAAA,CAAoB,WAAW,CAAG,EAAA;AAClC,IAAM,MAAA,IAAI,MAAM,yBAAyB,CAAA;AAAA;AAE7C,EAAM,MAAA,aAAA,GAAgB,oBAAoB,CAAC,CAAA;AAC3C,EAAA,OAAO,yBAAyB,aAAa,CAAA;AACjD;AAEa,IAAA,gBAAA,GAAmB,OAAO,KAAA,EAAe,MAA2C,KAAA;AAC7F,EAAA,MAAM,sBAAsB,MAAMA,QAAAA,CAAQ,GAA4B,CAAA,mBAAA,CAAoB,MAAM,CAAG,EAAA;AAAA,IAC/F,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA,GACjC,CAAA;AACD,EAAA,OAAO,yBAAyB,mBAAmB,CAAA;AACvD;;;ACrCA,IAAMA,QAAAA,GAAU,IAAI,WAAA,CAAY,mCAAmC,CAAA;AAEtD,IAAA,UAAA,GAAa,OAAO,KAAA,EAAe,YAA2C,KAAA;AACvF,EAAA,MAAM,aAAgB,GAAA,MAAMA,QAAQ,CAAA,GAAA,CAAsB,iBAAkB,CAAA,YAAY,CAAG,EAAA,EAAE,aAAe,EAAA,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,EAAI,CAAA;AAC/H,EAAA,OAAO,IAAI,OAAA;AAAA,IACP,aAAc,CAAA,EAAA;AAAA,IACd,cAAc,IAAK,CAAA,EAAA;AAAA,IACnB,aAAc,CAAA,OAAA;AAAA,IACd,aAAc,CAAA,MAAA;AAAA,IACd,YAAA;AAAA,IACA,IAAA;AAAA,IACA,uEAA0E,GAAA,YAAA;AAAA,IAC1E,uEAA0E,GAAA,YAAA;AAAA,IAC1E,IAAI,IAAK,CAAA,aAAA,CAAc,IAAI;AAAA,GAC/B;AACJ;;;ACbA,IAAMA,QAAAA,GAAU,IAAI,WAAA,CAAY,mCAAmC,CAAA;AAEnE,IAAM,eAAe,OACjB,IAAA,EACA,QACA,EAAA,QAAA,EACA,UACA,UACkB,KAAA;AAClB,EAAA,IAAI,UAAY,EAAA;AACZ,IAAA,OAAO,IAAI,MAAO,CAAA;AAAA,MACd,OAAc,IAAK,CAAA,YAAA;AAAA,MACnB,QAAc,IAAK,CAAA,MAAA;AAAA,MACnB,QAAc,IAAK,CAAA,MAAA;AAAA,MACnB,QAAA,EAAc,WAAW,QAAW,GAAA,IAAA;AAAA,MACpC,QAAA,EAAc,WAAW,QAAW,GAAA,IAAA;AAAA,MACpC,YAAA,EAAc,IAAK,CAAA,GAAA,EAAQ,GAAA;AAAA,KAC9B,CAAA;AAAA;AAGL,EAAA,MAAM,OAAO,MAAM,OAAA,CAAQ,IAAK,CAAA,YAAA,EAAc,KAAK,MAAM,CAAA;AAEzD,EAAA,MAAM,CAAC,OAAS,EAAA,aAAa,CAAI,GAAA,MAAM,QAAQ,GAAI,CAAA;AAAA,IAC/C,WAAY,CAAA,IAAA,CAAK,YAAc,EAAA,IAAA,CAAK,MAAM,CAAA;AAAA,IAC1C,gBAAiB,CAAA,IAAA,CAAK,YAAc,EAAA,IAAA,CAAK,MAAM;AAAA,GAClD,CAAA;AAED,EAAA,OAAO,IAAI,MAAO,CAAA;AAAA,IACd,OAAc,IAAK,CAAA,YAAA;AAAA,IACnB,QAAc,IAAK,CAAA,MAAA;AAAA,IACnB,QAAc,IAAK,CAAA,MAAA;AAAA,IACnB,QAAA,EAAc,WAAW,QAAW,GAAA,IAAA;AAAA,IACpC,QAAA,EAAc,WAAW,QAAW,GAAA,IAAA;AAAA,IACpC,YAAA,EAAc,IAAK,CAAA,GAAA,EAAQ,GAAA;AAAA,GAC/B,EAAG,aAAe,EAAA,IAAA,EAAM,OAAO,CAAA;AACnC,CAAA;AAEa,IAAA,2BAAA,GAA8B,OACvC,QACA,EAAA,QAAA,EACA,WAAW,IACX,EAAA,UAAA,GAAa,OACb,MACkB,KAAA;AAClB,EAAA,MAAM,IAAO,GAAA,MAAMA,QAAQ,CAAA,IAAA,CAAoB,YAAc,EAAA;AAAA,IACzD,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACH,CAAA;AAED,EAAA,OAAO,YAAa,CAAA,IAAA,EAAM,QAAU,EAAA,QAAA,EAAU,UAAU,UAAU,CAAA;AACtE;AAEO,IAAM,yBAAyB,OAClC,GAAA,EACA,QACA,QAAW,GAAA,IAAA,EACX,aAAa,KACK,KAAA;AAClB,EAAA,MAAM,WAAW,MAAM,KAAA,CAAM,6DAA6D,GAAG,CAAA,QAAA,EAAW,MAAM,CAAE,CAAA,CAAA;AAChH,EAAA,MAAM,OAAU,GAAA,QAAA,CAAS,OAAQ,CAAA,GAAA,CAAI,YAAY,CAAA;AACjD,EAAM,MAAA,QAAA,GAAmB,OAAS,EAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAE,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAK,IAAA,EAAA;AACjE,EAAM,MAAA,QAAA,GAAmB,OAAS,EAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAE,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAK,IAAA,EAAA;AAEjE,EAAA,MAAM,IAAO,GAAA,MAAMA,QAAQ,CAAA,IAAA,CAAoB,YAAc,EAAA;AAAA,IACzD,QAAA;AAAA,IACA;AAAA,GACH,CAAA;AAED,EAAA,OAAO,YAAa,CAAA,IAAA,EAAM,QAAU,EAAA,QAAA,EAAU,UAAU,UAAU,CAAA;AACtE;;;ACpDO,IAAM,SAAN,MAAa;AAAA,EAChB,WACY,CAAA,WAAA,EACD,aACA,EAAA,IAAA,EACA,QACT,EAAA;AAJU,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AACD,IAAA,IAAA,CAAA,aAAA,GAAA,aAAA;AACA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAAA;AACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOH,MAAM,QAAA,CAAS,MAAgB,EAAA,GAAA,EAAa,cAAuB,WAA4C,EAAA;AAC3G,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAO,OAAA,QAAA,CAAS,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAQ,EAAA,MAAA,EAAQ,GAAK,EAAA,YAAA,EAAc,WAAW,CAAA;AAAA;AAC3G;AAAA;AAAA,EAGA,MAAM,cAAmC,GAAA;AACrC,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,eAAe,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAa,CAAA,cAAA,EAAwB,QAAmC,EAAA;AAC1E,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAO,OAAA,YAAA,CAAa,KAAK,WAAY,CAAA,MAAA,EAAQ,gBAAgB,QAAU,EAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA;AACjG;AAAA;AAAA,EAIA,MAAM,WAAuC,GAAA;AACzC,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,YAAY,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AACtE,EACA,MAAM,YAAY,IAAwC,EAAA;AACtD,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,YAAY,IAAK,CAAA,WAAA,CAAY,OAAO,IAAK,CAAA,WAAA,CAAY,QAAQ,IAAI,CAAA;AAAA;AAC5E;AAAA;AAAA;AAAA,EAIA,MAAM,iBAAiB,eAAkD,EAAA;AACrE,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAM,MAAA,MAAA,GAAS,eAAmB,IAAA,IAAA,CAAK,IAAM,EAAA,MAAA;AAC7C,IAAA,IAAI,CAAC,MAAQ,EAAA;AACT,MAAA,MAAM,IAAI,KAAA;AAAA,QACN;AAAA,OAEJ;AAAA;AAEJ,IAAA,OAAO,gBAAiB,CAAA,IAAA,CAAK,WAAY,CAAA,KAAA,EAAO,MAAM,CAAA;AAAA;AAC1D;AAAA;AAAA,EAGA,MAAM,UAA2C,GAAA;AAC7C,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,WAAW,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AACrE;AAAA;AAAA;AAAA,EAIA,MAAM,gBAAgB,OAAwC,EAAA;AAC1D,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,gBAAgB,IAAK,CAAA,WAAA,CAAY,OAAO,IAAK,CAAA,WAAA,CAAY,QAAQ,OAAO,CAAA;AAAA;AACnF;AAAA;AAAA,EAGA,MAAM,OAAyB,GAAA;AAC3B,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,QAAQ,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AAClE;AAAA;AAAA,EAGA,MAAM,cAAmC,GAAA;AACrC,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,eAAe,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AACzE;AAAA;AAAA;AAAA,EAIA,MAAM,WAAW,YAAwC,EAAA;AACrD,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,UAAW,CAAA,IAAA,CAAK,WAAY,CAAA,KAAA,EAAO,YAAY,CAAA;AAAA;AAC1D;AAAA;AAAA,EAIA,MAAM,WAAoC,GAAA;AACtC,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,gBAAgB,IAAK,CAAA,WAAA,CAAY,KAAO,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA;AAC1E;AAAA;AAAA;AAAA,EAIA,MAAM,YAAY,MAAkC,EAAA;AAChD,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,YAAY,IAAK,CAAA,WAAA,CAAY,OAAO,IAAK,CAAA,WAAA,CAAY,QAAQ,MAAM,CAAA;AAAA;AAC9E,EACA,MAAM,kBAAmB,CAAA,KAAA,GAAQ,KAAyB,EAAA;AACtD,IAAA,IAAI,CAAC,KAAS,IAAA,IAAA,CAAK,YAAY,YAAe,GAAA,IAAA,CAAK,KAAO,EAAA;AACtD,MAAO,OAAA,KAAA;AAAA;AAEX,IAAA,IAAI,CAAC,IAAK,CAAA,WAAA,CAAY,YAAY,CAAC,IAAA,CAAK,YAAY,QAAU,EAAA;AAC1D,MAAM,MAAA,IAAI,MAAM,0EAA0E,CAAA;AAAA;AAE9F,IAAM,MAAA,MAAA,GAAS,MAAM,2BAAA,CAA4B,IAAK,CAAA,WAAA,CAAY,UAAU,IAAK,CAAA,WAAA,CAAY,QAAU,EAAA,IAAA,EAAM,KAAK,CAAA;AAClH,IAAA,IAAA,CAAK,cAAc,MAAO,CAAA,WAAA;AAC1B,IAAO,OAAA,IAAA;AAAA;AACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,qBAAqB,KAAe,EAAA,IAAA,GAAO,IAAI,KAAQ,GAAA,EAAA,EAAI,aAAa,KAAsC,EAAA;AAChH,IAAA,MAAM,KAAK,kBAAmB,EAAA;AAC9B,IAAA,OAAO,qBAAqB,KAAO,EAAA,IAAA,EAAM,OAAO,UAAY,EAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA;AAE1F","file":"index.mjs","sourcesContent":["/** @module RESTManager */\nimport { RequestOptions } from \"../types/request-handler\";\n\nexport class RestManager {\n private readonly baseURL: string;\n\n constructor(baseURL: string) {\n this.baseURL = baseURL;\n }\n\n private async sendRequest<T>(options: RequestOptions): Promise<T> {\n const { method, path, body, headers } = options;\n const url = `${this.baseURL}/${path}`;\n\n const response = await fetch(url, {\n method,\n body: body ? JSON.stringify(body) : undefined,\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n \"User-Agent\": \"@raphckrman/turboself-api\"\n }\n });\n\n if (!response.ok) {\n const responseData = await response.json();\n throw new Error(`${response.status}: ${JSON.stringify(responseData)}`);\n }\n\n const responseData = await response.json();\n return responseData as T;\n }\n\n async get<T>(\n path: string,\n headers?: Record<string, string>\n ): Promise<T> {\n return this.sendRequest<T>({\n method: \"GET\",\n path: path,\n headers: headers\n });\n }\n\n async post<T>(\n path: string,\n body: any,\n options?: RequestOptions\n ): Promise<T> {\n return this.sendRequest<T>({\n method: \"POST\",\n path,\n body,\n headers: options?.headers\n });\n }\n\n async put<T>(\n path: string,\n body: any,\n options?: RequestOptions\n ): Promise<T> {\n return this.sendRequest<T>({\n method: \"PUT\",\n path,\n body,\n headers: options?.headers\n });\n }\n\n async delete<T>(\n path: string,\n params?: Record<string, any>,\n options?: RequestOptions\n ): Promise<T> {\n const urlParams = new URLSearchParams(params).toString();\n const urlPath = urlParams ? `${path}?${urlParams}` : path;\n return this.sendRequest<T>({\n method: \"DELETE\",\n path: urlPath,\n headers: options?.headers\n });\n }\n}\n","/** REST/Endpoints */\nexport const BASE_URL = () => \"https://api-rest-prod.incb.fr/api\";\n\nexport const AUTH_LOGIN = () => \"v1/auth/login\";\nexport const AUTH_SIGNUP = () => \"v1/creation-comptes\";\nexport const AUTH_PASSWORD_RESET = (email: string) => `v1/utilisateurs/password?email=${email}`;\nexport const AUTH_PASSWORD_CHANGE = () => \"v1/utilisateurs/password\";\n\nexport const USER_BY_ID = (userId: number) => `v1/utilisateurs/${userId}`;\nexport const USER_BY_HOTE = (hostId: number) => `v1/utilisateurs/hotes/${hostId}`;\n\nexport const HOST = (hostId: number) => `v1/hotes/${hostId}`;\nexport const HOST_BALANCE = (hostId: number) => `v1/comptes/hotes/${hostId}/3`;\nexport const HOST_HOME = (hostId: number) => `v2/hotes/${hostId}/accueil`;\nexport const HOST_ACCOUNTS = (hostId: number) => `v2/hotes/${hostId}/comptes`;\nexport const HOST_SIBLINGS = (hostId: number) => `v1/hotes/${hostId}/freres-soeurs`;\nexport const HOST_BOOK_EVENING = (hostId: number) => `v1/hotes/${hostId}/resa-soir`;\nexport const HOST_HISTORY_GLOBAL = (hostId: number) => `v1/historiques/hotes/${hostId}`;\nexport const HOST_INIT_PAYMENT = (hostId: number) => `v2/hotes/${hostId}/paiements/init`;\nexport const HOST_PAYMENTS_LATEST = (hostId: number) => `v2/hotes/${hostId}/paiements-payline/latest`;\nexport const HOST_HISTORY_SPECIFIC = (hostId: number, eventId: number) => `v2/hotes/${hostId}/historiques/${eventId}`;\nexport const HOST_RESERVATIONS = (hostId: number, week?: number) => `v1/reservations/hotes/${hostId}/semaines${\"?num=\" + week || \"\"}`;\nexport const HOST_RESERVATIONS_SPECIFIC = (hostId: number, reservationId: string) => `v2/hotes/${hostId}/reservations/${reservationId}`;\nexport const HOST_BOOK_MEAL = (hostId: number) => `v2/hotes/${hostId}/reservations-jours`;\n\nexport const ESTABLISHMENT_BY_CODE = (code: string) => `v2/etablissements?code2p5=${code}`;\nexport const ESTABLISHMENT_BY_ID = (establishmentId: number) => `v1/etablissements/etabId/${establishmentId}`;\nexport const ESTABLISHMENT_SEARCH = (query: string, code: string, limit: number) => `v1/etablissements?q=${query}&code2p5=${code}&limit=${limit}`;\n\nexport const TERMINALS_BY_ID = (terminalId: number) => `v1/bornes/${terminalId}`;\n\nexport const PAYMENTS_SPECIFIC = (paymentToken: string) => `v1/paiements-payline/${paymentToken}`;\n","export class Balance {\n constructor(\n /** Internal identifier of a host's accounting in the digital space */\n public id: number,\n /** Internal identifier of the host */\n public hostId: number,\n /** Label of the balance */\n public label: string,\n /** Amount of the balance */\n public amount: number,\n /** Estimated host account balance (taking into account future reservations and OK payments) */\n public estimatedAmount: number,\n /** Date of the estimated balance */\n public estimatedDate: Date\n ) {}\n}\n","export class Payment {\n constructor(\n /** Internal identifier of Payline payment in the digital space */\n public id: number | null,\n /** Host ID of the buyer */\n public hostId: number,\n /** Amount of the payment */\n public amount: number,\n /** Status of the payment */\n public status: string,\n /** Payment token */\n public token: string,\n /** URL of the payment page */\n public url: string | null,\n /** URL to redirect to if the payment is cancelled */\n public cancelURL: string,\n /** URL to redirect to if the payment is successful */\n public returnURL: string,\n /** Date of the payment */\n public date: Date\n ) {}\n\n}\n","export class HistoryEvent {\n constructor(\n /** Internal identifier of a host's history in digital space */\n public id: number,\n /** Date of the operation */\n public date: Date,\n /** Operation details */\n public label: string,\n /** Amount of the operation */\n public amount: number\n ) {}\n\n}\n","import { BookingDay } from \"./BookingDay\";\nimport { Terminal } from \"./Terminal\";\n\nexport class Booking {\n constructor(\n /** Internal identifier of a host's accounting in the digital space */\n public id: string,\n /** Calendar week number */\n public week: number,\n /** Internal identifier of the host on the digital space */\n public hostId: number,\n /** Week Start Date */\n public from: Date,\n /** Week End Date */\n public to: Date,\n /** Terminal information */\n public terminal: Terminal,\n /** Days of the week available to book */\n public days: Array<BookingDay>\n ) {}\n}\n","export class Terminal {\n constructor(\n /** Internal identifier of the Self terminal in the digital space */\n public id: number,\n /** Internal identfeir of the Self terminal in the local database */\n public localId: number,\n /** 2P5 Code of the establishment */\n public code: number,\n /** Terminal Name (eg. Self) */\n public name: string,\n public prices: Array<{\n /** Internal identifier of the price in the digital space */\n id: number;\n /** Internal identifier of the price in the local database */\n localId: number;\n /** Name of the price */\n name: string;\n /** Price in cents */\n price: number;\n }>\n ) {}\n}\n","import { bookMeal } from \"../routes/Host\";\n\nexport class BookingDay {\n constructor(\n private token: string,\n /** Internal identifier of the host on the digital space */\n public hostId: number,\n /** Internal identifier of the booking week in the digital space */\n public id: string,\n /** Whether the day is booked */\n public booked: boolean,\n /** Whether the day is available to book */\n public canBook: boolean,\n /** Day of the week */\n public dayNumber: number,\n /** Message to display */\n public message: string,\n /** Number of reservations this day */\n public reservations: number,\n /** Date of the day */\n public date: Date\n ) {}\n\n async book(reservations = 1, bookEvening = false): Promise<BookingDay> {\n this.booked = reservations > 0;\n return bookMeal(this.token, this.hostId, this.id, this.date.getDay(), reservations, bookEvening);\n }\n}\n","export function getWeekRange(weekNumber: number, year: number): { from: Date; to: Date; } {\n weekNumber -= 2;\n const firstDayOfYear = new Date(year, 0, 1);\n const dayOfWeek = firstDayOfYear.getDay();\n const daysToFirstMonday = (dayOfWeek === 0) ? 1 : (8 - dayOfWeek);\n const firstMonday = new Date(firstDayOfYear);\n firstMonday.setDate(firstDayOfYear.getDate() + daysToFirstMonday);\n const weekStartDate = new Date(firstMonday);\n weekStartDate.setDate(firstMonday.getDate() + weekNumber * 7);\n const weekEndDate = new Date(weekStartDate);\n weekEndDate.setDate(weekStartDate.getDate() + 6);\n weekStartDate.setHours(0, 0, 0, 0);\n weekEndDate.setHours(23, 59, 59, 999);\n const timezoneOffset = weekStartDate.getTimezoneOffset() * 60000;\n const fromLocal = new Date(weekStartDate.getTime() - timezoneOffset);\n const toLocal = new Date(weekEndDate.getTime() - timezoneOffset);\n return { from: fromLocal, to: toLocal };\n}\n","/** @class Establishment */\n\nimport {\n Closure,\n Contact,\n Location,\n Permissions,\n SSOConfiguration,\n Synchronisation\n} from \"../types/establishment\";\n\nexport class Establishment {\n constructor(\n /** Internal identifier of the establishment on the digital space */\n public id: number,\n /** Name of establishment (max length: 50) */\n public name: string,\n /** Currency symbol */\n public currencySymbol: string | null,\n /** 2p5 code */\n public code: string | null,\n /** URL of the establishment logo */\n public logoUrl: string | null,\n /** UAI (Unité Administrative Immatriculée) code, unique to each establishment */\n public uai: string | null,\n /** Server MAC Adress */\n public macAddress: string | null,\n /** Digital space greeting */\n public motd: string,\n /** Minimum number of meals to credit the Self account */\n public minMealsToCredit: number | null,\n /** Minimum debt to credit the Forfait account */\n public minDebtToCredit: number | null,\n /** Minimum amount to credit the Self account */\n public minAmountToCredit: number | null,\n /** If the establishment is disabled */\n public disabled: boolean | null,\n public closures: Array<Closure>,\n public location: Location,\n public contact: Contact,\n public permissions: Permissions,\n public sso: SSOConfiguration | null,\n public synchronisation: Synchronisation\n ) {}\n\n}\n","/** @class Host */\n\nexport class Host {\n constructor(\n /** Internal identifier of the host on the digital space */\n public id: number,\n /** Internal identifier of the host in the TurboSelf local database */\n public localId: number,\n public etabId: number,\n /** First name of the host */\n public firstName: string,\n /** Last name of the host */\n public lastName: string,\n /** Host mode */\n public mode: \"Argent\" | \"Forfait\",\n /** Host quality */\n public quality: string,\n /** Host's Class */\n public division: string,\n /** Lunch Price */\n public lunchPrice: number,\n /** Type of host (Student or Commensal or Trainee) */\n public type: number,\n /** Host coded card number */\n public cardNumber: number,\n /** Access URL for Cafeteria pre-order */\n public cafeteriaUrl: string | null,\n public permissions: {\n /** Does the student have the right to payment in the digital space? */\n payment?: boolean;\n /** Does the student have the right to reservation on the digital space? */\n reservation?: boolean;\n /** Is the student entitled to pre-order Cafeteria on the digital space? */\n cafeteria?: boolean;\n /** Is the host allowed to book if their balance is insufficient? */\n bookWithNegativeBalance?: boolean;\n /** Number of passages or reservations authorized at the Self for a service */\n maxPassages?: number;\n }\n ) {}\n\n\n}\n","import { Establishment } from \"../structures/Establishment\";\nimport { Host } from \"../structures/Host\";\nimport { rawEstablishmentResult, rawEstablishmentSearchResult } from \"../types/establishment\";\nimport { rawHostResult } from \"../types/host\";\n\nfunction isRawEstablishmentResult(establishment: rawEstablishmentResult | rawEstablishmentSearchResult): establishment is rawEstablishmentResult {\n return (establishment as rawEstablishmentResult).id !== undefined;\n}\n\nexport function transformToEstablishment(establishment: rawEstablishmentResult | rawEstablishmentSearchResult): Establishment {\n return new Establishment(\n isRawEstablishmentResult(establishment) ? (establishment.id ?? 0) : 0,\n isRawEstablishmentResult(establishment) ? (establishment.nom || \"N/A\") : establishment.nom,\n isRawEstablishmentResult(establishment) ? (establishment.currencySymbol || null) : null,\n isRawEstablishmentResult(establishment) ? (establishment.code2p5 || null) : establishment.code2p5,\n isRawEstablishmentResult(establishment) ? (establishment.logoUrl || null) : null,\n isRawEstablishmentResult(establishment) ? (establishment.numEtab || null) : null,\n isRawEstablishmentResult(establishment) ? (establishment.pcServeur || null) : null,\n isRawEstablishmentResult(establishment) ? (establishment.configuration?.msgAccueil || \"\") : \"You are not logged in so you can't see all data\",\n isRawEstablishmentResult(establishment) ? (establishment.configuration?.nbRepasMini || 0) : null,\n isRawEstablishmentResult(establishment) ? (establishment.configuration?.creanceMini || 0) : null,\n isRawEstablishmentResult(establishment) ? (establishment.configuration?.montantCreditMini || 0) : null,\n isRawEstablishmentResult(establishment) ? (establishment.desactive || false) : null,\n isRawEstablishmentResult(establishment) ? (establishment.configuration?.fermetures?.map(closure => ({\n id: closure.id,\n canBook: !closure.rsv,\n canPay: !closure.paiement,\n from: new Date(closure.du),\n to: new Date(closure.au)\n })) || []) : [],\n isRawEstablishmentResult(establishment) ? ({\n city: establishment.ville,\n address: establishment.adr1 + \" \" + establishment.adr2,\n postcode: establishment.cp\n }) : {\n city: null,\n address: null,\n postcode: null\n },\n isRawEstablishmentResult(establishment) ? ({\n phoneNumber: establishment.tel || null,\n faxNumber: establishment.fax || null,\n email: establishment.configuration?.email || null,\n website: establishment.configuration?.url || null\n }) : {\n phoneNumber: null,\n faxNumber: null,\n email: null,\n website: null\n },\n isRawEstablishmentResult(establishment) ? ({\n maxReservationsStudentMoney: establishment.configurationSelf?.nbmultiElvArg || null,\n maxReservationsStudentPackage: establishment.configurationSelf?.nbmultiElvFor || null,\n maxReservationsCommensalMoney: establishment.configurationSelf?.nbmultiComArg || null,\n maxReservationsCommensalPackage: establishment.configurationSelf?.nbmultiComFor || null,\n maxReservationsTraineeMoney: establishment.configurationSelf?.nbmultiStgArg || null,\n maxReservationsTraineePackage: establishment.configurationSelf?.nbmultiStgFor || null,\n qrCodeStudent: establishment.configuration?.autoriseQrCodeEleve || null,\n qrCodeCommensal: establishment.configuration?.autoriseQrCodeCommensal || null,\n qrCodeTrainee: establishment.configuration?.autoriseQrCodeStagiaire || null,\n hideHistory: establishment.configuration?.cacherHistorique || false\n }) : {\n maxReservationsStudentMoney: null,\n maxReservationsStudentPackage: null,\n maxReservationsCommensalMoney: null,\n maxReservationsCommensalPackage: null,\n maxReservationsTraineeMoney: null,\n maxReservationsTraineePackage: null,\n qrCodeStudent: null,\n qrCodeCommensal: null,\n qrCodeTrainee: null,\n hideHistory: null\n },\n isRawEstablishmentResult(establishment) ? ({\n id: establishment.configuration?.sso?.id || null,\n entCode: establishment.configuration?.sso?.entCode || null,\n entName: establishment.configuration?.sso?.entName || null,\n serveurCas: establishment.configuration?.sso?.serveurCas || null,\n service: establishment.configuration?.sso?.service || null\n }) : {\n id: null,\n entCode: null,\n entName: null,\n serveurCas: null,\n service: null\n },\n isRawEstablishmentResult(establishment) ? ({\n firstSync: new Date(establishment.datePremSynchro || 0),\n lastSync: new Date(establishment.dateDernSynchro || 0)\n }) : {\n firstSync: new Date(0),\n lastSync: new Date(0)\n }\n );\n}\n\nexport function transformToHost(host: rawHostResult): Host {\n return new Host(\n host.id,\n host.idOrig,\n host.etab.id,\n host.prenom,\n host.nom,\n host.mode,\n host.qualite,\n host.division,\n host.prixDej,\n host.type,\n host.carteCodee,\n host.urlCafeteria || null,\n {\n payment: host.droitPaiement || false,\n reservation: host.droitReservation || false,\n cafeteria: host.droitCafeteria || false,\n bookWithNegativeBalance: host.autoriseReservSoldeIns,\n maxPassages: host.nbMulti\n }\n );\n}\n","import { RestManager } from \"../rest/RESTManager\";\nimport {\n HOST,\n HOST_BALANCE,\n HOST_BOOK_EVENING,\n HOST_BOOK_MEAL,\n HOST_HISTORY_GLOBAL,\n HOST_HOME,\n HOST_INIT_PAYMENT,\n HOST_RESERVATIONS,\n HOST_SIBLINGS\n} from \"../rest/endpoints\";\nimport { Host } from \"../structures/Host\";\nimport {\n rawBookingResult,\n rawBookResult,\n rawHistoryGet,\n rawHostBalanceResult,\n rawHostHomeResult,\n rawHostResult,\n rawPaymentInitResult\n} from \"../types/host\";\nimport { Balance } from \"../structures/Balance\";\nimport { Payment } from \"../structures/Payment\";\nimport { HistoryEvent } from \"../structures/HistoryEvent\";\nimport { Booking } from \"../structures/Booking\";\nimport { Terminal } from \"../structures/Terminal\";\nimport { BookingDay } from \"../structures/BookingDay\";\nimport { getWeekRange } from \"../utils/weekRange\";\nimport { transformToHost } from \"../utils/transformers\";\n\nconst manager = new RestManager(\"https://api-rest-prod.incb.fr/api\");\n\nexport const getHost = async (token: string, hostId: number): Promise<Host> => {\n const rawHostGet = await manager.get<rawHostResult>(HOST(hostId), { Authorization: `Bearer ${token}` });\n\n return transformToHost(rawHostGet);\n};\n\nexport const getBalances = async (token: string, hostId: number): Promise<Array<Balance>> => {\n const rawBalanceGet = await manager.get<Array<rawHostBalanceResult>>(HOST_BALANCE(hostId), { Authorization: `Bearer ${token}` });\n const balances: Array<Balance> = [];\n for (const balance of rawBalanceGet) {\n const dateString = balance.montantEstimeMsg\n ? balance.montantEstimeMsg.match(/(\\d{2})\\/(\\d{2})\\/(\\d{4})/)?.slice(1, 4)\n : undefined;\n let date = new Date();\n if (dateString) {\n date = new Date(parseInt(dateString[2], 10), parseInt(dateString[1], 10) - 1, parseInt(dateString[0], 10));\n }\n balances.push(new Balance(\n balance.id,\n balance.hote.id,\n balance.appli.lib,\n balance.montant,\n balance.montantEstime,\n date\n ));\n }\n\n return balances;\n};\n\n\nexport const initPayment = async (token: string, hostId: number, amount: number): Promise<Payment> => {\n const rawPaymentInit = await manager.post<rawPaymentInitResult>(HOST_INIT_PAYMENT(hostId), [{\n paiementPayline: {\n hote: {\n id: hostId\n }\n },\n montant: amount\n }], {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n return new Payment(\n null,\n hostId,\n amount,\n \"INIT\",\n rawPaymentInit.token,\n rawPaymentInit.redirectURL,\n \"https://espacenumerique.turbo-self.com/PagePaiementRefuse.aspx?token=\" + rawPaymentInit.token,\n \"https://espacenumerique.turbo-self.com/PagePaiementValide.aspx?token=\" + rawPaymentInit.token,\n new Date()\n );\n};\n\nexport const getHistory = async (token: string, hostId: number): Promise<Array<HistoryEvent>> => {\n const rawHistory = await manager.get<Array<rawHistoryGet>>(HOST_HISTORY_GLOBAL(hostId), { Authorization: `Bearer ${token}` });\n const history: Array<HistoryEvent> = [];\n for (const event of rawHistory) {\n history.push(new HistoryEvent(\n event.id,\n new Date(event.date),\n event.detail,\n (event.credit ?? 0) - (event.debit ?? 0)\n ));\n }\n\n return history;\n};\n\nexport const getHistoryEvent = async (token: string, hostId: number, eventId: number): Promise<HistoryEvent> => {\n const rawHistory = await manager.get<Array<rawHistoryGet>>(HOST_HISTORY_GLOBAL(hostId), { Authorization: `Bearer ${token}` });\n const event = rawHistory.find(history => history.id === eventId);\n\n if (!event) throw new Error(\"Event not found\");\n\n return new HistoryEvent(\n event.id,\n new Date(event.date),\n event.detail,\n (event.credit ?? 0) - (event.debit ?? 0)\n );\n};\n\nexport const getLastPayment = async (token: string, hostId: number): Promise<Payment> => {\n const rawPayment = (await manager.get<rawHostHomeResult>(HOST_HOME(hostId), { Authorization: `Bearer ${token}` })).latestPaiement;\n return new Payment(\n rawPayment.id,\n hostId,\n rawPayment.montant,\n rawPayment.statut,\n rawPayment.token,\n null,\n \"https://espacenumerique.turbo-self.com/PagePaiementRefuse.aspx?token=\" + rawPayment.token,\n \"https://espacenumerique.turbo-self.com/PagePaiementValide.aspx?token=\" + rawPayment.token,\n new Date(rawPayment.date)\n );\n};\n\nexport const canBookEvening = async (token: string, hostId: number): Promise<boolean> => manager.get<boolean>(HOST_BOOK_EVENING(hostId), { Authorization: `Bearer ${token}` });\n\nexport const getBookings = async (token: string, hostId: number, week?: number): Promise<Array<Booking>> => {\n const rawBooking = await manager.get<rawBookingResult>(HOST_RE