bengaluru-transit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +507 -0
  3. package/dist/api/info.d.ts +77 -0
  4. package/dist/api/info.d.ts.map +1 -0
  5. package/dist/api/info.js +197 -0
  6. package/dist/api/info.js.map +1 -0
  7. package/dist/api/locations.d.ts +26 -0
  8. package/dist/api/locations.d.ts.map +1 -0
  9. package/dist/api/locations.js +57 -0
  10. package/dist/api/locations.js.map +1 -0
  11. package/dist/api/routes.d.ts +341 -0
  12. package/dist/api/routes.d.ts.map +1 -0
  13. package/dist/api/routes.js +1133 -0
  14. package/dist/api/routes.js.map +1 -0
  15. package/dist/api/stops.d.ts +92 -0
  16. package/dist/api/stops.d.ts.map +1 -0
  17. package/dist/api/stops.js +237 -0
  18. package/dist/api/stops.js.map +1 -0
  19. package/dist/api/vehicles.d.ts +49 -0
  20. package/dist/api/vehicles.d.ts.map +1 -0
  21. package/dist/api/vehicles.js +154 -0
  22. package/dist/api/vehicles.js.map +1 -0
  23. package/dist/client/base-client.d.ts +52 -0
  24. package/dist/client/base-client.d.ts.map +1 -0
  25. package/dist/client/base-client.js +76 -0
  26. package/dist/client/base-client.js.map +1 -0
  27. package/dist/client/transit-client.d.ts +91 -0
  28. package/dist/client/transit-client.d.ts.map +1 -0
  29. package/dist/client/transit-client.js +98 -0
  30. package/dist/client/transit-client.js.map +1 -0
  31. package/dist/constants/api.d.ts +16 -0
  32. package/dist/constants/api.d.ts.map +1 -0
  33. package/dist/constants/api.js +16 -0
  34. package/dist/constants/api.js.map +1 -0
  35. package/dist/constants/routes.d.ts +16 -0
  36. package/dist/constants/routes.d.ts.map +1 -0
  37. package/dist/constants/routes.js +16 -0
  38. package/dist/constants/routes.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +10 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/schemas/common.d.ts +34 -0
  44. package/dist/schemas/common.d.ts.map +1 -0
  45. package/dist/schemas/common.js +20 -0
  46. package/dist/schemas/common.js.map +1 -0
  47. package/dist/schemas/index.d.ts +7 -0
  48. package/dist/schemas/index.d.ts.map +1 -0
  49. package/dist/schemas/index.js +7 -0
  50. package/dist/schemas/index.js.map +1 -0
  51. package/dist/schemas/info.d.ts +390 -0
  52. package/dist/schemas/info.d.ts.map +1 -0
  53. package/dist/schemas/info.js +110 -0
  54. package/dist/schemas/info.js.map +1 -0
  55. package/dist/schemas/locations.d.ts +84 -0
  56. package/dist/schemas/locations.d.ts.map +1 -0
  57. package/dist/schemas/locations.js +31 -0
  58. package/dist/schemas/locations.js.map +1 -0
  59. package/dist/schemas/routes.d.ts +3967 -0
  60. package/dist/schemas/routes.d.ts.map +1 -0
  61. package/dist/schemas/routes.js +532 -0
  62. package/dist/schemas/routes.js.map +1 -0
  63. package/dist/schemas/stops.d.ts +543 -0
  64. package/dist/schemas/stops.d.ts.map +1 -0
  65. package/dist/schemas/stops.js +129 -0
  66. package/dist/schemas/stops.js.map +1 -0
  67. package/dist/schemas/vehicles.d.ts +602 -0
  68. package/dist/schemas/vehicles.d.ts.map +1 -0
  69. package/dist/schemas/vehicles.js +116 -0
  70. package/dist/schemas/vehicles.js.map +1 -0
  71. package/dist/types/api.d.ts +9 -0
  72. package/dist/types/api.d.ts.map +1 -0
  73. package/dist/types/api.js +5 -0
  74. package/dist/types/api.js.map +1 -0
  75. package/dist/types/coordinates.d.ts +7 -0
  76. package/dist/types/coordinates.d.ts.map +1 -0
  77. package/dist/types/coordinates.js +2 -0
  78. package/dist/types/coordinates.js.map +1 -0
  79. package/dist/types/geojson.d.ts +84 -0
  80. package/dist/types/geojson.d.ts.map +1 -0
  81. package/dist/types/geojson.js +2 -0
  82. package/dist/types/geojson.js.map +1 -0
  83. package/dist/types/index.d.ts +16 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +12 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/dist/types/info.d.ts +133 -0
  88. package/dist/types/info.d.ts.map +1 -0
  89. package/dist/types/info.js +5 -0
  90. package/dist/types/info.js.map +1 -0
  91. package/dist/types/locations.d.ts +59 -0
  92. package/dist/types/locations.d.ts.map +1 -0
  93. package/dist/types/locations.js +5 -0
  94. package/dist/types/locations.js.map +1 -0
  95. package/dist/types/routes.d.ts +1137 -0
  96. package/dist/types/routes.d.ts.map +1 -0
  97. package/dist/types/routes.js +14 -0
  98. package/dist/types/routes.js.map +1 -0
  99. package/dist/types/stops.d.ts +286 -0
  100. package/dist/types/stops.d.ts.map +1 -0
  101. package/dist/types/stops.js +26 -0
  102. package/dist/types/stops.js.map +1 -0
  103. package/dist/types/vehicles.d.ts +138 -0
  104. package/dist/types/vehicles.d.ts.map +1 -0
  105. package/dist/types/vehicles.js +5 -0
  106. package/dist/types/vehicles.js.map +1 -0
  107. package/dist/utils/date.d.ts +35 -0
  108. package/dist/utils/date.d.ts.map +1 -0
  109. package/dist/utils/date.js +49 -0
  110. package/dist/utils/date.js.map +1 -0
  111. package/dist/utils/errors.d.ts +34 -0
  112. package/dist/utils/errors.d.ts.map +1 -0
  113. package/dist/utils/errors.js +41 -0
  114. package/dist/utils/errors.js.map +1 -0
  115. package/dist/utils/geojson.d.ts +36 -0
  116. package/dist/utils/geojson.d.ts.map +1 -0
  117. package/dist/utils/geojson.js +115 -0
  118. package/dist/utils/geojson.js.map +1 -0
  119. package/dist/utils/validation.d.ts +40 -0
  120. package/dist/utils/validation.d.ts.map +1 -0
  121. package/dist/utils/validation.js +62 -0
  122. package/dist/utils/validation.js.map +1 -0
  123. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACN,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EACxB,sCAAsC,EACtC,8BAA8B,EAC9B,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,mCAAmC,EACnC,+BAA+B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EACN,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAmD1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAQ5D;;GAEG;AACH,SAAS,4BAA4B,CACpC,GAA2B,EAC3B,OAAe;IAEf,0EAA0E;IAC1E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAC/B,CAAC,IAAI,EAAE,EAAE,CACR,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAGrD,CACF,CAAC;IAEF,oDAAoD;IACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACN,SAAS,EAAE,uBAAuB,CAAC,EAAE,CAAC;SACtC,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAiB,kBAAkB,CAAC,WAAW,EAAE;QAClE,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,OAAO;QACN,SAAS,EAAE,uBAAuB,CAAC,CAAC,YAAY,CAAC,CAAC;KAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CACpC,GAA2B;IAE3B,MAAM,KAAK,GAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;KAC9C,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAClC,GAAyB;IAEzB,MAAM,KAAK,GAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW;QAC1B,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,SAAS;KACtB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAClC,GAAyB;IAEzB,MAAM,KAAK,GAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,YAAY,EAAE,IAAI,CAAC,eAAe;QAClC,UAAU,EAAE,IAAI,CAAC,aAAa;QAC9B,UAAU,EAAE,IAAI,CAAC,aAAa;QAC9B,QAAQ,EAAE,IAAI,CAAC,WAAW;QAC1B,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,CAAC,CAAC;KACH,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mCAAmC,CAC3C,GAAkC;IAElC,MAAM,KAAK,GAA6B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3C,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,cAAc,EAAE,IAAI,CAAC,CAAC;QACtB,YAAY,EAAE,IAAI,CAAC,CAAC;QACpB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,eAAe;QAClC,UAAU,EAAE,IAAI,CAAC,aAAa;QAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,eAAe,EAAE,IAAI,CAAC,OAAO;QAC7B,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;KACzB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAClC,GAA8B;IAE9B,OAAO;QACN,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7C,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,oBAAoB,EAAE,GAAG,CAAC,eAAe;QACzC,sBAAsB,EAAE,GAAG,CAAC,iBAAiB;QAC7C,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;QACzC,mBAAmB,EAAE,GAAG,CAAC,oBAAoB;QAC7C,sBAAsB,EAAE,GAAG,CAAC,iBAAiB;QAC7C,oBAAoB,EAAE,GAAG,CAAC,eAAe;QACzC,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;QAC/C,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACrD,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;QACtD,YAAY,EAAE,GAAG,CAAC,YAAY;KAC9B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC9B,GAAgC;IAEhC,oFAAoF;IACpF,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,MAAM,UAAU,GAAiC;YAChD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,QAAQ,EAAE,OAAO,CAAC,WAAW;YAC7B,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,qDAAqD;YAC/F,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,OAAO,CAAC,mBAAmB;YAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC;QACF,OAAO;YACN,IAAI,EAAE,SAAkB;YACxB,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAqB;aACxE;YACD,UAAU;SACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,MAAM,sBAAsB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3D,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACrF,OAAO;YACN,IAAI,EAAE,SAAkB;YACxB,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAgB;gBACtB,WAAW,EAAE,CAAC,UAAU,EAAE,SAAS,CAAqB;aACxD;YACD,UAAU,EAAE;gBACX,GAAG,UAAU;gBACb,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,0BAA0B;aACrE;SACD,CAAC;IACH,CAAC,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,mBAAmB,GAAsB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1E,qBAAqB,CACpB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB;IAC/D;QACC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;QACzC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;QACjD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,oBAAoB,EAAE,OAAO,CAAC,eAAe;QAC7C,sBAAsB,EAAE,OAAO,CAAC,iBAAiB;QACjD,iBAAiB,EAAE,OAAO,CAAC,kBAAkB;QAC7C,mBAAmB,EAAE,OAAO,CAAC,oBAAoB;QACjD,sBAAsB,EAAE,OAAO,CAAC,iBAAiB;QACjD,oBAAoB,EAAE,OAAO,CAAC,eAAe;QAC7C,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACzD,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,YAAY,EAAE,OAAO,CAAC,YAAY;KAClC,CACD,CACD,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,uBAAuB,CAAC,eAAe,CAAC;QAC/C,eAAe,EAAE,uBAAuB,CAAC,sBAAsB,CAAC;QAChE,YAAY,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;KAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CACrC,GAA4B;IAE5B,OAAO;QACN,EAAE,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,IAAI,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;KACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACtC,GAAgC;IAEhC,OAAO;QACN,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QACtC,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,cAAc,EAAE,GAAG,CAAC,eAAe,CAAC,WAAW,EAAmB;QAClE,YAAY,EAAE,GAAG,CAAC,eAAe;QACjC,UAAU,EAAE,GAAG,CAAC,aAAa;KAC7B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mCAAmC,CAC3C,GAAqC;IAEpC,OAAO;QACP,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC;KACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CACjC,GAAwB;IAExB,MAAM,KAAK,GAAmB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;KACf,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,GAAsC;IACtE,OAAO;QACN,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QAClC,QAAQ,EAAE,GAAG,CAAC,WAAW;QACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;QACpB,oBAAoB,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;QACjD,sBAAsB,EAAE,GAAG,CAAC,iBAAiB,IAAI,IAAI;QACrD,iBAAiB,EAAE,GAAG,CAAC,kBAAkB,IAAI,IAAI;QACjD,mBAAmB,EAAE,GAAG,CAAC,oBAAoB,IAAI,IAAI;QACrD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CACpC,GAA2B;IAE3B,MAAM,KAAK,GAAqB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAEtE,+DAA+D;IAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,qBAAqB,CACpB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC/B;QACC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC3B,CACD,CACD,CAAC;IAEF,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CACnC,GAA0B;IAE1B,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEvE,OAAO;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,UAAU,EAAE,GAAG,CAAC,KAAK;QACrB,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,eAAe;QACf,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,YAAY,EAAE,GAAG,CAAC,eAAe;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QACtC,UAAU,EAAE,GAAG,CAAC,aAAa;QAC7B,WAAW,EAAE,GAAG,CAAC,cAAc;QAC/B,SAAS,EAAE,GAAG,CAAC,YAAY;QAC3B,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7C,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,oBAAoB;QACpB,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,gBAAgB,EAAE,GAAG,CAAC,oBAAoB;QAC1C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,WAAW;KAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,kBAAkB;QAClB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,eAAe;QACf,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,YAAoB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAuB;IAC9C,OAAO,GAAG,CAAC,OAAO,KAAK,iBAAiB,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAuB;IAC5C,OAAO,GAAG,CAAC,UAAU,KAAK,iBAAiB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAA0B;IACvD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC;QAC5B,aAAa,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC9B,YAAY,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAErD,kCAAkC;QAClC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACzB,YAAY,IAAI,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,6BAA6B;QAC7B,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,UAAU,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,qDAAqD;QACrD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,eAAe,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,0DAA0D;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IAEvD,OAAO;QACN,aAAa,EAAE,uBAAuB,CAAC,YAAY,CAAC;QACpD,oBAAoB,EAAE,YAAY;QAClC,SAAS;QACT,aAAa;QACb,aAAa;QACb,UAAU;KACV,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAA8B;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO;QACN,IAAI;QACJ,GAAG,MAAM;KACT,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B,CACpC,GAA2B;IAE3B,+CAA+C;IAC/C,MAAM,YAAY,GAAuB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEnF,iDAAiD;IACjD,MAAM,cAAc,GAAuB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvF,oEAAoE;IACpE,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC;IAEpD,OAAO;QACN,MAAM;KACN,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,SAAkC;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC;AAUD;;;GAGG;AAEH,SAAS,wBAAwB,CAAC,cAAwB;IACzD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC;YACJ,iEAAiE;YACjE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAmC,CAAC;YAE7D,0CAA0C;YAC1C,MAAM,WAAW,GAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9E,uBAAuB;YACvB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAChC,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBAChB,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;gBACf,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBACf,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;YAEF,IAAI,OAAO,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC;oBACb,WAAW,EAAE,WAAsC;oBACnD,UAAU,EAAE,WAAW,CAAC,MAAM;iBAC9B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,oCAAoC;QACrC,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,GAAyB;IAC5D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAE/C,iGAAiG;IACjG,0DAA0D;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,EAAE,SAAkB;QACxB,QAAQ,EAAE;YACT,IAAI,EAAE,YAAqB;YAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,UAAU,EAAE,EAAE;KACd,CAAC,CAAC,CAAC;IAEJ,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACD;IAApB,YAAoB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE1C;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,cAAc,CACnB,MAAyB;QAEzB,sEAAsE;QACtE,MAAM,eAAe,GAAG,QAAQ,CAC/B,uBAAuB,EACvB,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EACpC,iCAAiC,CACjC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAClE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,4BAA4B,EAC5B,IAAI,EACJ,+BAA+B,CAC/B,CAAC;QAEF,wCAAwC;QACxC,OAAO,4BAA4B,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC3C,4BAA4B;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAC/B,uBAAuB,EACvB,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,EAC3B,iCAAiC,CACjC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACrE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,4BAA4B,EAC5B,IAAI,EACJ,+BAA+B,CAC/B,CAAC;QAEF,wCAAwC;QACxC,OAAO,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACtE,IAAI,EAAE,EAAE;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,0BAA0B,EAC1B,IAAI,EACJ,6BAA6B,CAC7B,CAAC;QAEF,wCAAwC;QACxC,OAAO,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,mBAAmB,CACxB,MAA8B;QAE9B,2CAA2C;QAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE9C,0DAA0D;QAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAEhD,mEAAmE;QACnE,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;YACnD,OAAO,GAAG,GAAG,gBAAgB,QAAQ,CAAC;QACvC,CAAC;QAED,4EAA4E;QAC5E,MAAM,cAAc,GAOhB;YACH,YAAY,EAAE,WAAW;YACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAChC,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;SAChB,CAAC;QAEF,mEAAmE;QACnE,IAAI,YAAY,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACpD,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;YACjD,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,2BAA2B;QAC3B,MAAM,eAAe,GAAG,QAAQ,CAC/B,sBAAsB,EACtB,cAAc,EACd,8BAA8B,CAC9B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM;aAChC,SAAS,EAAE;aACX,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,0BAA0B,EAC1B,IAAI,EACJ,4BAA4B,CAC5B,CAAC;QAEF,wCAAwC;QACxC,OAAO,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,oBAAoB,CACzB,MAA0B;QAE1B,4EAA4E;QAC5E,MAAM,cAAc,GAGhB;YACH,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;SACtC,CAAC;QAEF,kCAAkC;QAClC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QAED,2BAA2B;QAC3B,MAAM,eAAe,GAAG,QAAQ,CAC/B,wBAAwB,EACxB,cAAc,EACd,kCAAkC,CAClC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM;aAChC,SAAS,EAAE;aACX,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,6BAA6B,EAC7B,IAAI,EACJ,gCAAgC,CAChC,CAAC;QAEF,wCAAwC;QACxC,OAAO,6BAA6B,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,qBAAqB,CAC1B,MAAgC;QAEhC,wEAAwE;QACxE,MAAM,eAAe,GAAG,QAAQ,CAC/B,8BAA8B,EAC9B;YACC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,oCAAoC;YAC/E,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,oCAAoC;SAC3E,EACD,yCAAyC,CACzC,CAAC;QAEF,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YACpE,IAAI,EAAE;gBACL,aAAa,EAAE,eAAe,CAAC,aAAa;gBAC5C,WAAW,EAAE,eAAe,CAAC,WAAW;gBACxC,GAAG;aACH;SACD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,sCAAsC,EACtC,IAAI,EACJ,uCAAuC,CACvC,CAAC;QAEF,wCAAwC;QACxC,OAAO,mCAAmC,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACpC,mFAAmF;QACnF,0FAA0F;QAC1F,MAAM,eAAe,GAAG,QAAQ,CAC/B,oBAAoB,EACpB;YACC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;YACnC,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,kCAAkC;YAC1E,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,gBAAgB,EAAE,MAAM,CAAC,eAAe;SACxC,EACD,8BAA8B,CAC9B,CAAC;QAEF,6EAA6E;QAC7E,MAAM,SAAS,GAAG;YACjB,GAAG,eAAe;YAClB,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE;SAC9D,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC3E,IAAI,EAAE,SAAS;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,yBAAyB,EACzB,IAAI,EACJ,4BAA4B,CAC5B,CAAC;QAEF,wCAAwC;QACxC,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAyB;QACvC,2DAA2D;QAC3D,MAAM,UAAU,GAUZ,EAAE,CAAC;QAEP,kDAAkD;QAClD,IAAI,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACjD,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,iBAAiB,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAClE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;YAC1C,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC;YAC9B,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;QAChC,CAAC;QAED,gDAAgD;QAChD,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7C,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,eAAe,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;YACxC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC;YAC5B,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC;QAC9B,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,0CAA0C;YAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC;gBAChC,MAAM,IAAI,YAAY,CAAC,oCAAoC,EAAE,kBAAkB,CAAC,CAAC;YAClF,CAAC;YACD,4CAA4C;YAC5C,UAAU,CAAC,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,QAAQ,CAC/B,uBAAuB,EACvB,UAAU,EACV,iCAAiC,CACjC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACtE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,4BAA4B,EAC5B,IAAI,EACJ,+BAA+B,CAC/B,CAAC;QAEF,wCAAwC;QACxC,OAAO,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC3C,oCAAoC;QACpC,MAAM,mBAAmB,GAAG,QAAQ,CACnC,uBAAuB,EACvB,MAAM,EACN,iCAAiC,CACjC,CAAC;QAEF,kEAAkE;QAClE,MAAM,UAAU,GAAG;YAClB,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,oCAAoC;gBAC7E,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,oCAAoC;aACzE,CAAC,CAAC;SACH,CAAC;QAEF,8BAA8B;QAC9B,MAAM,eAAe,GAAG,QAAQ,CAC/B,0BAA0B,EAC1B,UAAU,EACV,qCAAqC,CACrC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACrE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,4BAA4B,EAC5B,IAAI,EACJ,+BAA+B,CAC/B,CAAC;QAEF,wCAAwC;QACxC,OAAO,4BAA4B,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,KAAK,CAAC,WAAW,CAAC,MAAuB;QACxC,IAAI,SAAkC,CAAC;QAEvC,sDAAsD;QACtD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACjF,yEAAyE;YACzE,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;iBACnC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;iBACtD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,uDAAuD;gBACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAClC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;oBACxC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAqB,CAAC,CAAC,mCAAmC;gBAC3E,CAAC;gBACD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,qDAAqD;YACrD,MAAM,eAAe,GAAG,QAAQ,CAC/B,qBAAqB,EACrB,MAAM,EACN,8BAA8B,CAC9B,CAAC;YACF,SAAS,GAAG,eAAe,CAAC,SAAoC,CAAC;QAClE,CAAC;QAED,4DAA4D;QAC5D,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3D,sFAAsF;QACtF,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAElD,sBAAsB;QACtB,MAAM,UAAU,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,YAAY;YACZ,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,mBAAmB;SAC/B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACtE,IAAI,EAAE,UAAU;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,2CAA2C;QAC3C,MAAM,WAAW,GAAG,QAAQ,CAC3B,0BAA0B,EAC1B,IAAI,EACJ,4BAA4B,CAC5B,CAAC;QAEF,iEAAiE;QACjE,OAAO,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,KAAK,CAAC,wBAAwB,CAC7B,MAAgC;QAEhC,+CAA+C;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjC,4EAA4E;QAC5E,MAAM,cAAc,GAQhB;YACH,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;YACzC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,WAAW,EAAE,GAAG,OAAO,QAAQ;YAC/B,SAAS,EAAE,GAAG,OAAO,QAAQ;YAC7B,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC/B,MAAM,EAAE,OAAO;SACf,CAAC;QAEF,2BAA2B;QAC3B,MAAM,eAAe,GAAG,QAAQ,CAC/B,+BAA+B,EAC/B,cAAc,EACd,yCAAyC,CACzC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM;aAChC,SAAS,EAAE;aACX,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,mCAAmC,EACnC,IAAI,EACJ,uCAAuC,CACvC,CAAC;QAEF,wCAAwC;QACxC,OAAO,mCAAmC,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;CACD"}
@@ -0,0 +1,92 @@
1
+ import type { BaseClient } from "../client/base-client";
2
+ import type { AroundBusStopsResponse, AroundBusStopsParams, NearbyBusStopsResponse, NearbyBusStopsParams, NearbyStationsResponse, NearbyStationsParams } from "../types/stops";
3
+ /**
4
+ * Stops/Stations API methods
5
+ */
6
+ export declare class StopsAPI {
7
+ private client;
8
+ constructor(client: BaseClient);
9
+ /**
10
+ * Find nearby bus stations with facilities around a location
11
+ * @param params - Parameters including coordinates [latitude, longitude]
12
+ * @param params.coordinates - [latitude, longitude] coordinates
13
+ * @returns List of nearby stations with facilities as GeoJSON Point features
14
+ * @throws {TransitValidationError} If coordinates are invalid or validation fails
15
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
16
+ * @example
17
+ * ```typescript
18
+ * const stations = await client.stops.findNearbyStations({
19
+ * coordinates: [13.09784, 77.59167]
20
+ * });
21
+ *
22
+ * stations.features.forEach(station => {
23
+ * console.log(`${station.properties.stationName} - ${station.properties.facilities.length} facilities`);
24
+ * });
25
+ * ```
26
+ */
27
+ findNearbyStations(params: AroundBusStopsParams): Promise<AroundBusStopsResponse>;
28
+ /**
29
+ * Search bus stops by station name
30
+ * @param params - Parameters including station name query and optional station type
31
+ * @param params.stationName - Station name to search for
32
+ * @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
33
+ * @returns List of bus stops matching the query
34
+ * @remarks
35
+ * The stationType parameter determines the type of stops to search (defaults to "bmtc"):
36
+ * - "bmtc": Transit Bus Stops (default)
37
+ * - "chartered": Chartered Stops
38
+ * - "metro": Metro Stops
39
+ * - "ksrtc": KSRTC bus stops
40
+ * @throws {TransitValidationError} If stationName is invalid or validation fails
41
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
42
+ * @example
43
+ * ```typescript
44
+ * // Search transit stops
45
+ * const stops = await client.stops.searchBusStops({
46
+ * stationName: "MG Road"
47
+ * });
48
+ *
49
+ * // Search metro stops only
50
+ * const metroStops = await client.stops.searchBusStops({
51
+ * stationName: "MG Road",
52
+ * stationType: "metro"
53
+ * });
54
+ * ```
55
+ */
56
+ searchBusStops(params: NearbyBusStopsParams): Promise<NearbyBusStopsResponse>;
57
+ /**
58
+ * Find nearby stops by location within a radius
59
+ * @param params - Parameters including coordinates [latitude, longitude], radius, and optional filters
60
+ * @param params.coordinates - [latitude, longitude] coordinates
61
+ * @param params.radius - Search radius in kilometers
62
+ * @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
63
+ * @param params.bmtcCategory - Optional: BMTC category filter ("airport", "all") - only when stationType is "bmtc"
64
+ * @returns List of nearby stops with distance and travel time information
65
+ * @remarks
66
+ * This endpoint returns up to 10 results. Pagination is not supported.
67
+ * The bmtcCategory parameter filters specific subsets of BMTC stops:
68
+ * - "airport": Airport bus stops only
69
+ * - "all": All BMTC stops
70
+ * Note: bmtcCategory can only be used when stationType is "bmtc"
71
+ * @throws {TransitValidationError} If coordinates, radius, or filters are invalid or validation fails
72
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
73
+ * @example
74
+ * ```typescript
75
+ * // Find all nearby stops within 1km
76
+ * const stops = await client.stops.findNearbyStops({
77
+ * coordinates: [13.09784, 77.59167],
78
+ * radius: 1
79
+ * });
80
+ *
81
+ * // Find airport stops only
82
+ * const airportStops = await client.stops.findNearbyStops({
83
+ * coordinates: [13.09784, 77.59167],
84
+ * radius: 2,
85
+ * stationType: "bmtc",
86
+ * bmtcCategory: "airport"
87
+ * });
88
+ * ```
89
+ */
90
+ findNearbyStops(params: NearbyStationsParams): Promise<NearbyStationsResponse>;
91
+ }
92
+ //# sourceMappingURL=stops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stops.d.ts","sourceRoot":"","sources":["../../src/api/stops.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACX,sBAAsB,EAEtB,oBAAoB,EAGpB,sBAAsB,EAEtB,oBAAoB,EAEpB,sBAAsB,EAEtB,oBAAoB,EAEpB,MAAM,gBAAgB,CAAC;AA+FxB;;GAEG;AACH,qBAAa,QAAQ;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC;;;;;;;;;;;;;;;;;OAiBG;IACG,kBAAkB,CACvB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IA6BlC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,cAAc,CACnB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IAmClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,eAAe,CACpB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;CA2DlC"}
@@ -0,0 +1,237 @@
1
+ import { validate, stringifyId } from "../utils/validation";
2
+ import { rawAroundBusStopsResponseSchema, aroundBusStopsParamsSchema, rawNearbyBusStopsResponseSchema, nearbyBusStopsParamsSchema, rawNearbyStationsResponseSchema, nearbyStationsParamsSchema, } from "../schemas/stops";
3
+ import { createFacilityFeature, createFeatureCollection, } from "../utils/geojson";
4
+ import { stationTypeToNumber, transitCategoryToNumber } from "../types/stops";
5
+ /**
6
+ * Transform raw around bus stops API response to clean, normalized format
7
+ */
8
+ function transformAroundBusStopsResponse(raw) {
9
+ const stations = raw.data.map((stationItem) => {
10
+ const facilityTypes = stationItem.Arounds.map((facilityTypeGroup) => {
11
+ // Convert each facility to GeoJSON Point feature
12
+ const facilityFeatures = facilityTypeGroup.list.map((facility) => createFacilityFeature([parseFloat(facility.longitude), parseFloat(facility.latitude)], // GeoJSON: [lng, lat]
13
+ {
14
+ facilityName: facility.name,
15
+ facilityType: facilityTypeGroup.type,
16
+ facilityTypeId: facilityTypeGroup.typeid,
17
+ icon: facilityTypeGroup.icon,
18
+ distance: parseFloat(facility.distance),
19
+ stationName: stationItem.stationname,
20
+ }));
21
+ return {
22
+ type: facilityTypeGroup.type,
23
+ typeId: facilityTypeGroup.typeid,
24
+ icon: facilityTypeGroup.icon,
25
+ facilities: createFeatureCollection(facilityFeatures),
26
+ };
27
+ });
28
+ return {
29
+ stationName: stationItem.stationname,
30
+ distance: parseFloat(stationItem.distance),
31
+ facilityTypes,
32
+ };
33
+ });
34
+ return {
35
+ stations,
36
+ };
37
+ }
38
+ /**
39
+ * Transform raw nearby bus stops API response to clean, normalized format
40
+ */
41
+ function transformNearbyBusStopsResponse(raw) {
42
+ const items = raw.data.map((item) => ({
43
+ serialNumber: item.srno,
44
+ routeNo: item.routeno,
45
+ stationId: stringifyId(item.routeid),
46
+ latitude: item.center_lat,
47
+ longitude: item.center_lon,
48
+ routeTypeId: item.routetypeid,
49
+ stationName: item.routename,
50
+ route: item.route,
51
+ }));
52
+ return {
53
+ items,
54
+ };
55
+ }
56
+ /**
57
+ * Transform raw nearby stations API response to clean, normalized format
58
+ */
59
+ function transformNearbyStationsResponse(raw) {
60
+ const items = raw.data.map((item) => ({
61
+ rowNumber: item.rowno,
62
+ stationId: stringifyId(item.geofenceid),
63
+ stationName: item.geofencename,
64
+ latitude: item.center_lat,
65
+ longitude: item.center_lon,
66
+ towards: item.towards,
67
+ distance: item.distance,
68
+ travelTimeMinutes: item.totalminute,
69
+ radius: item.radiuskm,
70
+ }));
71
+ return {
72
+ items,
73
+ };
74
+ }
75
+ /**
76
+ * Stops/Stations API methods
77
+ */
78
+ export class StopsAPI {
79
+ client;
80
+ constructor(client) {
81
+ this.client = client;
82
+ }
83
+ /**
84
+ * Find nearby bus stations with facilities around a location
85
+ * @param params - Parameters including coordinates [latitude, longitude]
86
+ * @param params.coordinates - [latitude, longitude] coordinates
87
+ * @returns List of nearby stations with facilities as GeoJSON Point features
88
+ * @throws {TransitValidationError} If coordinates are invalid or validation fails
89
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
90
+ * @example
91
+ * ```typescript
92
+ * const stations = await client.stops.findNearbyStations({
93
+ * coordinates: [13.09784, 77.59167]
94
+ * });
95
+ *
96
+ * stations.features.forEach(station => {
97
+ * console.log(`${station.properties.stationName} - ${station.properties.facilities.length} facilities`);
98
+ * });
99
+ * ```
100
+ */
101
+ async findNearbyStations(params) {
102
+ // Validate input parameters
103
+ const [latitude, longitude] = params.coordinates;
104
+ const validatedParams = validate(aroundBusStopsParamsSchema, {
105
+ latitude,
106
+ longitude,
107
+ }, "Invalid around bus stops parameters");
108
+ const response = await this.client.getClient().post("AroundBusStops_v2", {
109
+ json: validatedParams,
110
+ });
111
+ const data = await response.json();
112
+ // Validate raw response with Zod schema
113
+ const rawResponse = validate(rawAroundBusStopsResponseSchema, data, "Invalid around bus stops response");
114
+ // Transform to clean, normalized format
115
+ return transformAroundBusStopsResponse(rawResponse);
116
+ }
117
+ /**
118
+ * Search bus stops by station name
119
+ * @param params - Parameters including station name query and optional station type
120
+ * @param params.stationName - Station name to search for
121
+ * @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
122
+ * @returns List of bus stops matching the query
123
+ * @remarks
124
+ * The stationType parameter determines the type of stops to search (defaults to "bmtc"):
125
+ * - "bmtc": Transit Bus Stops (default)
126
+ * - "chartered": Chartered Stops
127
+ * - "metro": Metro Stops
128
+ * - "ksrtc": KSRTC bus stops
129
+ * @throws {TransitValidationError} If stationName is invalid or validation fails
130
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
131
+ * @example
132
+ * ```typescript
133
+ * // Search transit stops
134
+ * const stops = await client.stops.searchBusStops({
135
+ * stationName: "MG Road"
136
+ * });
137
+ *
138
+ * // Search metro stops only
139
+ * const metroStops = await client.stops.searchBusStops({
140
+ * stationName: "MG Road",
141
+ * stationType: "metro"
142
+ * });
143
+ * ```
144
+ */
145
+ async searchBusStops(params) {
146
+ // Convert human-readable stationType to API numeric value (default to "bmtc" for transit stops)
147
+ const stationTypeValue = params.stationType || "bmtc";
148
+ const stationTypeNumber = stationTypeToNumber(stationTypeValue);
149
+ // Validate input parameters
150
+ const validatedParams = validate(nearbyBusStopsParamsSchema, {
151
+ stationname: params.stationName,
152
+ stationflag: stationTypeNumber,
153
+ }, "Invalid nearby bus stops parameters");
154
+ const response = await this.client.getClient().post("FindNearByBusStop_v2", {
155
+ json: {
156
+ stationname: validatedParams.stationname,
157
+ stationflag: validatedParams.stationflag,
158
+ },
159
+ });
160
+ const data = await response.json();
161
+ // Validate raw response with Zod schema
162
+ const rawResponse = validate(rawNearbyBusStopsResponseSchema, data, "Invalid nearby bus stops response");
163
+ // Transform to clean, normalized format
164
+ return transformNearbyBusStopsResponse(rawResponse);
165
+ }
166
+ /**
167
+ * Find nearby stops by location within a radius
168
+ * @param params - Parameters including coordinates [latitude, longitude], radius, and optional filters
169
+ * @param params.coordinates - [latitude, longitude] coordinates
170
+ * @param params.radius - Search radius in kilometers
171
+ * @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
172
+ * @param params.bmtcCategory - Optional: BMTC category filter ("airport", "all") - only when stationType is "bmtc"
173
+ * @returns List of nearby stops with distance and travel time information
174
+ * @remarks
175
+ * This endpoint returns up to 10 results. Pagination is not supported.
176
+ * The bmtcCategory parameter filters specific subsets of BMTC stops:
177
+ * - "airport": Airport bus stops only
178
+ * - "all": All BMTC stops
179
+ * Note: bmtcCategory can only be used when stationType is "bmtc"
180
+ * @throws {TransitValidationError} If coordinates, radius, or filters are invalid or validation fails
181
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
182
+ * @example
183
+ * ```typescript
184
+ * // Find all nearby stops within 1km
185
+ * const stops = await client.stops.findNearbyStops({
186
+ * coordinates: [13.09784, 77.59167],
187
+ * radius: 1
188
+ * });
189
+ *
190
+ * // Find airport stops only
191
+ * const airportStops = await client.stops.findNearbyStops({
192
+ * coordinates: [13.09784, 77.59167],
193
+ * radius: 2,
194
+ * stationType: "bmtc",
195
+ * bmtcCategory: "airport"
196
+ * });
197
+ * ```
198
+ */
199
+ async findNearbyStops(params) {
200
+ // Convert human-readable stationType to API numeric value (default to "bmtc")
201
+ let stationTypeNumber;
202
+ if (params.stationType) {
203
+ stationTypeNumber = stationTypeToNumber(params.stationType);
204
+ }
205
+ // Convert human-readable bmtcCategory to API numeric value if provided
206
+ // TypeScript ensures this is only possible when stationType is "bmtc"
207
+ let bmtcCategoryNumber;
208
+ if ("bmtcCategory" in params && params.bmtcCategory) {
209
+ bmtcCategoryNumber = transitCategoryToNumber(params.bmtcCategory);
210
+ }
211
+ // Build request payload
212
+ const [latitude, longitude] = params.coordinates;
213
+ const requestPayload = {
214
+ latitude,
215
+ longitude,
216
+ radiuskm: params.radius,
217
+ };
218
+ // Add optional parameters if provided
219
+ if (stationTypeNumber !== undefined) {
220
+ requestPayload.stationflag = stationTypeNumber;
221
+ }
222
+ if (bmtcCategoryNumber !== undefined) {
223
+ requestPayload.flexiflag = bmtcCategoryNumber;
224
+ }
225
+ // Validate input parameters
226
+ const validatedParams = validate(nearbyStationsParamsSchema, requestPayload, "Invalid nearby stations parameters");
227
+ const response = await this.client.getClient().post("NearbyStations_v2", {
228
+ json: validatedParams,
229
+ });
230
+ const data = await response.json();
231
+ // Validate raw response with Zod schema
232
+ const rawResponse = validate(rawNearbyStationsResponseSchema, data, "Invalid nearby stations response");
233
+ // Transform to clean, normalized format
234
+ return transformNearbyStationsResponse(rawResponse);
235
+ }
236
+ }
237
+ //# sourceMappingURL=stops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stops.js","sourceRoot":"","sources":["../../src/api/stops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { BaseClient } from "../client/base-client";
2
+ import type { SearchVehiclesResponse, SearchVehiclesParams, VehicleTripResponse, VehicleTripParams } from "../types/vehicles";
3
+ /**
4
+ * Vehicles API methods
5
+ */
6
+ export declare class VehiclesAPI {
7
+ private client;
8
+ constructor(client: BaseClient);
9
+ /**
10
+ * Search vehicles by query (partial match)
11
+ * @param params - Search parameters including search query
12
+ * @param params.query - Vehicle registration number (partial match supported)
13
+ * @returns List of matching vehicles in normalized format
14
+ * @throws {TransitValidationError} If query is invalid or validation fails
15
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
16
+ * @example
17
+ * ```typescript
18
+ * const vehicles = await client.vehicles.searchVehicles({ query: "KA57F2403" });
19
+ * if (vehicles.items.length > 0) {
20
+ * const vehicle = vehicles.items[0];
21
+ * const trip = await client.vehicles.getVehicleTrip({ vehicleId: vehicle.vehicleId });
22
+ * }
23
+ * ```
24
+ */
25
+ searchVehicles(params: SearchVehiclesParams): Promise<SearchVehiclesResponse>;
26
+ /**
27
+ * Get vehicle trip information including route stops and live location
28
+ * @param params - Parameters including vehicle ID
29
+ * @param params.vehicleId - Vehicle ID (always string for consistency)
30
+ * @returns Vehicle trip with route information and live location in normalized GeoJSON format
31
+ * @example
32
+ * ```typescript
33
+ * const trip = await client.vehicles.getVehicleTrip({ vehicleId: "12345" });
34
+ *
35
+ * // Access route stops
36
+ * trip.routeStops.features.forEach(stop => {
37
+ * console.log(`${stop.properties.stopName} - ${stop.properties.eta}`);
38
+ * });
39
+ *
40
+ * // Access live vehicle location
41
+ * const location = trip.vehicleLocation.features[0];
42
+ * console.log(`Vehicle at: [${location.geometry.coordinates}]`);
43
+ * ```
44
+ * @throws {TransitValidationError} If vehicleId is invalid or validation fails
45
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
46
+ */
47
+ getVehicleTrip(params: VehicleTripParams): Promise<VehicleTripResponse>;
48
+ }
49
+ //# sourceMappingURL=vehicles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicles.d.ts","sourceRoot":"","sources":["../../src/api/vehicles.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACX,sBAAsB,EAGtB,oBAAoB,EACpB,mBAAmB,EAEnB,iBAAiB,EACjB,MAAM,mBAAmB,CAAC;AAkG3B;;GAEG;AACH,qBAAa,WAAW;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CACnB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IAyBlC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,cAAc,CACnB,MAAM,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC;CA0B/B"}
@@ -0,0 +1,154 @@
1
+ import { validate, parseId, stringifyId } from "../utils/validation";
2
+ import { rawSearchVehiclesResponseSchema, searchVehiclesParamsSchema, rawVehicleTripResponseSchema, vehicleTripParamsSchema, } from "../schemas/vehicles";
3
+ import { createStopFeature, createLocationFeature, createFeatureCollection, } from "../utils/geojson";
4
+ /**
5
+ * Transform raw search vehicles API response to clean, normalized format
6
+ */
7
+ function transformSearchVehiclesResponse(raw) {
8
+ return {
9
+ items: raw.data.map((item) => ({
10
+ vehicleId: stringifyId(item.vehicleid),
11
+ vehicleRegNo: item.vehicleregno,
12
+ })),
13
+ };
14
+ }
15
+ /**
16
+ * Transform raw vehicle trip API response to clean, normalized format
17
+ */
18
+ function transformVehicleTripResponse(raw) {
19
+ // Create GeoJSON features for route stops (stations along the route)
20
+ const routeStopsFeatures = raw.RouteDetails.map((item) => createStopFeature([item.longitude, item.latitude], // GeoJSON: [lng, lat]
21
+ {
22
+ stopId: stringifyId(item.stationid),
23
+ stopName: item.stationname,
24
+ tripId: stringifyId(item.tripid),
25
+ routeNo: item.routeno,
26
+ routeName: item.routename,
27
+ busNo: item.busno,
28
+ tripStatus: item.tripstatus,
29
+ tripStatusId: item.tripstatusid,
30
+ sourceStation: item.sourcestation,
31
+ destinationStation: item.destinationstation,
32
+ serviceType: item.servicetype,
33
+ serviceTypeId: stringifyId(item.servicetypeid),
34
+ lastUpdatedAt: item.lastupdatedat,
35
+ actualArrivalTime: item.actual_arrivaltime,
36
+ etaStatus: item.etastatus,
37
+ etaStatusMapView: item.etastatusmapview,
38
+ currentStop: item.currentstop,
39
+ lastStop: item.laststop,
40
+ webLastStop: item.weblaststop,
41
+ nextStop: item.nextstop,
42
+ currentLatitude: item.currlatitude,
43
+ currentLongitude: item.currlongitude,
44
+ scheduledArrivalTime: item.sch_arrivaltime,
45
+ scheduledDepartureTime: item.sch_departuretime,
46
+ eta: item.eta,
47
+ actualArrivalTime1: item.actual_arrivaltime1,
48
+ actualDepartureTime: item.actual_departudetime,
49
+ tripStartTime: item.tripstarttime,
50
+ tripEndTime: item.tripendtime,
51
+ routeId: stringifyId(item.routeid),
52
+ vehicleId: stringifyId(item.vehicleid),
53
+ lastReceivedDateTimeFlag: item.lastreceiveddatetimeflag,
54
+ serialNo: item.srno,
55
+ tripPosition: item.tripposition,
56
+ stopStatus: item.stopstatus,
57
+ stopStatusDistance: item.stopstatus_distance,
58
+ lastEtaUpdated: item.lastetaupdated,
59
+ minStopStatusDistance: item.minstopstatus_distance,
60
+ }));
61
+ // Create GeoJSON features for vehicle live location
62
+ const vehicleLocationFeatures = raw.LiveLocation.map((item) => createLocationFeature([item.longitude, item.latitude], // GeoJSON: [lng, lat]
63
+ {
64
+ vehicleId: stringifyId(item.vehicleid),
65
+ vehicleNumber: item.vehiclenumber,
66
+ routeNo: item.routeno,
67
+ serviceType: item.servicetype,
68
+ serviceTypeId: stringifyId(item.servicetypeid),
69
+ heading: item.heading,
70
+ location: item.location,
71
+ lastRefreshedOn: item.lastrefreshon,
72
+ nextStop: item.nextstop,
73
+ previousStop: item.previousstop,
74
+ tripStatus: item.trip_status,
75
+ lastReceivedDateTimeFlag: item.lastreceiveddatetimeflag,
76
+ }));
77
+ return {
78
+ routeStops: createFeatureCollection(routeStopsFeatures),
79
+ vehicleLocation: createFeatureCollection(vehicleLocationFeatures),
80
+ };
81
+ }
82
+ /**
83
+ * Vehicles API methods
84
+ */
85
+ export class VehiclesAPI {
86
+ client;
87
+ constructor(client) {
88
+ this.client = client;
89
+ }
90
+ /**
91
+ * Search vehicles by query (partial match)
92
+ * @param params - Search parameters including search query
93
+ * @param params.query - Vehicle registration number (partial match supported)
94
+ * @returns List of matching vehicles in normalized format
95
+ * @throws {TransitValidationError} If query is invalid or validation fails
96
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
97
+ * @example
98
+ * ```typescript
99
+ * const vehicles = await client.vehicles.searchVehicles({ query: "KA57F2403" });
100
+ * if (vehicles.items.length > 0) {
101
+ * const vehicle = vehicles.items[0];
102
+ * const trip = await client.vehicles.getVehicleTrip({ vehicleId: vehicle.vehicleId });
103
+ * }
104
+ * ```
105
+ */
106
+ async searchVehicles(params) {
107
+ // Validate input parameters
108
+ const validatedParams = validate(searchVehiclesParamsSchema, { vehicleregno: params.query }, "Invalid search vehicles parameters");
109
+ const response = await this.client.getClient().post("ListVehicles", {
110
+ json: validatedParams,
111
+ });
112
+ const data = await response.json();
113
+ // Validate raw response with Zod schema
114
+ const rawResponse = validate(rawSearchVehiclesResponseSchema, data, "Invalid search vehicles response");
115
+ // Transform to clean, normalized format
116
+ return transformSearchVehiclesResponse(rawResponse);
117
+ }
118
+ /**
119
+ * Get vehicle trip information including route stops and live location
120
+ * @param params - Parameters including vehicle ID
121
+ * @param params.vehicleId - Vehicle ID (always string for consistency)
122
+ * @returns Vehicle trip with route information and live location in normalized GeoJSON format
123
+ * @example
124
+ * ```typescript
125
+ * const trip = await client.vehicles.getVehicleTrip({ vehicleId: "12345" });
126
+ *
127
+ * // Access route stops
128
+ * trip.routeStops.features.forEach(stop => {
129
+ * console.log(`${stop.properties.stopName} - ${stop.properties.eta}`);
130
+ * });
131
+ *
132
+ * // Access live vehicle location
133
+ * const location = trip.vehicleLocation.features[0];
134
+ * console.log(`Vehicle at: [${location.geometry.coordinates}]`);
135
+ * ```
136
+ * @throws {TransitValidationError} If vehicleId is invalid or validation fails
137
+ * @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
138
+ */
139
+ async getVehicleTrip(params) {
140
+ // Validate input parameters - API expects number, convert from string
141
+ const validatedParams = validate(vehicleTripParamsSchema, { vehicleId: parseId(params.vehicleId) }, "Invalid vehicle trip parameters");
142
+ const response = await this.client
143
+ .getClient()
144
+ .post("VehicleTripDetails_v2", {
145
+ json: validatedParams,
146
+ });
147
+ const data = await response.json();
148
+ // Validate raw response with Zod schema
149
+ const rawResponse = validate(rawVehicleTripResponseSchema, data, "Invalid vehicle trip response");
150
+ // Transform to clean, normalized format
151
+ return transformVehicleTripResponse(rawResponse);
152
+ }
153
+ }
154
+ //# sourceMappingURL=vehicles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicles.js","sourceRoot":"","sources":["../../src/api/vehicles.ts"],"names":[],"mappings":"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"}