@mapvx/web-js 1.0.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 (397) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +257 -0
  3. package/dist/cjs/assets/icons.js +87 -0
  4. package/dist/cjs/assets/icons.js.map +1 -0
  5. package/dist/cjs/assets/route_animation_icon.svg +15 -0
  6. package/dist/cjs/assets/user-dot-icon.svg +3 -0
  7. package/dist/cjs/config/sdkConfig.js +3 -0
  8. package/dist/cjs/config/sdkConfig.js.map +1 -0
  9. package/dist/cjs/controllers/routeController.js +1054 -0
  10. package/dist/cjs/controllers/routeController.js.map +1 -0
  11. package/dist/cjs/domain/models/_internal.js +15 -0
  12. package/dist/cjs/domain/models/_internal.js.map +1 -0
  13. package/dist/cjs/domain/models/_rtl.js +10 -0
  14. package/dist/cjs/domain/models/_rtl.js.map +1 -0
  15. package/dist/cjs/domain/models/animation.js +63 -0
  16. package/dist/cjs/domain/models/animation.js.map +1 -0
  17. package/dist/cjs/domain/models/banner.js +24 -0
  18. package/dist/cjs/domain/models/banner.js.map +1 -0
  19. package/dist/cjs/domain/models/categories.js +25 -0
  20. package/dist/cjs/domain/models/categories.js.map +1 -0
  21. package/dist/cjs/domain/models/cityFilterOption.js +3 -0
  22. package/dist/cjs/domain/models/cityFilterOption.js.map +1 -0
  23. package/dist/cjs/domain/models/configuration.js +3 -0
  24. package/dist/cjs/domain/models/configuration.js.map +1 -0
  25. package/dist/cjs/domain/models/cssCustomization.js +3 -0
  26. package/dist/cjs/domain/models/cssCustomization.js.map +1 -0
  27. package/dist/cjs/domain/models/fitOptions.js +3 -0
  28. package/dist/cjs/domain/models/fitOptions.js.map +1 -0
  29. package/dist/cjs/domain/models/innerFloors.js +3 -0
  30. package/dist/cjs/domain/models/innerFloors.js.map +1 -0
  31. package/dist/cjs/domain/models/institution.js +44 -0
  32. package/dist/cjs/domain/models/institution.js.map +1 -0
  33. package/dist/cjs/domain/models/latLng.js +3 -0
  34. package/dist/cjs/domain/models/latLng.js.map +1 -0
  35. package/dist/cjs/domain/models/location.js +3 -0
  36. package/dist/cjs/domain/models/location.js.map +1 -0
  37. package/dist/cjs/domain/models/loggeable.js +52 -0
  38. package/dist/cjs/domain/models/loggeable.js.map +1 -0
  39. package/dist/cjs/domain/models/mapCamera.js +3 -0
  40. package/dist/cjs/domain/models/mapCamera.js.map +1 -0
  41. package/dist/cjs/domain/models/mapConfig.js +15 -0
  42. package/dist/cjs/domain/models/mapConfig.js.map +1 -0
  43. package/dist/cjs/domain/models/marker.js +400 -0
  44. package/dist/cjs/domain/models/marker.js.map +1 -0
  45. package/dist/cjs/domain/models/multilanguage.js +18 -0
  46. package/dist/cjs/domain/models/multilanguage.js.map +1 -0
  47. package/dist/cjs/domain/models/openingHours.js +3 -0
  48. package/dist/cjs/domain/models/openingHours.js.map +1 -0
  49. package/dist/cjs/domain/models/place.js +101 -0
  50. package/dist/cjs/domain/models/place.js.map +1 -0
  51. package/dist/cjs/domain/models/platform.js +3 -0
  52. package/dist/cjs/domain/models/platform.js.map +1 -0
  53. package/dist/cjs/domain/models/popover.js +3 -0
  54. package/dist/cjs/domain/models/popover.js.map +1 -0
  55. package/dist/cjs/domain/models/product.js +3 -0
  56. package/dist/cjs/domain/models/product.js.map +1 -0
  57. package/dist/cjs/domain/models/property.js +104 -0
  58. package/dist/cjs/domain/models/property.js.map +1 -0
  59. package/dist/cjs/domain/models/route.js +166 -0
  60. package/dist/cjs/domain/models/route.js.map +1 -0
  61. package/dist/cjs/domain/models/routeConfiguration.js +80 -0
  62. package/dist/cjs/domain/models/routeConfiguration.js.map +1 -0
  63. package/dist/cjs/domain/models/routeInstance.js +30 -0
  64. package/dist/cjs/domain/models/routeInstance.js.map +1 -0
  65. package/dist/cjs/domain/models/routeStyle.js +3 -0
  66. package/dist/cjs/domain/models/routeStyle.js.map +1 -0
  67. package/dist/cjs/domain/models/transport.js +22 -0
  68. package/dist/cjs/domain/models/transport.js.map +1 -0
  69. package/dist/cjs/domain/ports/ICache.js +3 -0
  70. package/dist/cjs/domain/ports/ICache.js.map +1 -0
  71. package/dist/cjs/domain/ports/IHttpClient.js +3 -0
  72. package/dist/cjs/domain/ports/IHttpClient.js.map +1 -0
  73. package/dist/cjs/domain/ports/ILogger.js +23 -0
  74. package/dist/cjs/domain/ports/ILogger.js.map +1 -0
  75. package/dist/cjs/domain/ports/index.js +10 -0
  76. package/dist/cjs/domain/ports/index.js.map +1 -0
  77. package/dist/cjs/index.js +76 -0
  78. package/dist/cjs/index.js.map +1 -0
  79. package/dist/cjs/infrastructure/cache/CacheManager.js +236 -0
  80. package/dist/cjs/infrastructure/cache/CacheManager.js.map +1 -0
  81. package/dist/cjs/infrastructure/cache/LRUCache.js +153 -0
  82. package/dist/cjs/infrastructure/cache/LRUCache.js.map +1 -0
  83. package/dist/cjs/infrastructure/cache/PersistentCache.js +160 -0
  84. package/dist/cjs/infrastructure/cache/PersistentCache.js.map +1 -0
  85. package/dist/cjs/infrastructure/cache/cacheConfig.js +70 -0
  86. package/dist/cjs/infrastructure/cache/cacheConfig.js.map +1 -0
  87. package/dist/cjs/infrastructure/http/FetchHttpClient.js +75 -0
  88. package/dist/cjs/infrastructure/http/FetchHttpClient.js.map +1 -0
  89. package/dist/cjs/infrastructure/logging/CountlyLogger.js +78 -0
  90. package/dist/cjs/infrastructure/logging/CountlyLogger.js.map +1 -0
  91. package/dist/cjs/interfaces/cache.js +3 -0
  92. package/dist/cjs/interfaces/cache.js.map +1 -0
  93. package/dist/cjs/interfaces/healthResponse.js +3 -0
  94. package/dist/cjs/interfaces/healthResponse.js.map +1 -0
  95. package/dist/cjs/interfaces/institutionResponse.js +3 -0
  96. package/dist/cjs/interfaces/institutionResponse.js.map +1 -0
  97. package/dist/cjs/interfaces/metadata.js +3 -0
  98. package/dist/cjs/interfaces/metadata.js.map +1 -0
  99. package/dist/cjs/interfaces/placeResponse.js +3 -0
  100. package/dist/cjs/interfaces/placeResponse.js.map +1 -0
  101. package/dist/cjs/interfaces/routeCacheResponse.js +3 -0
  102. package/dist/cjs/interfaces/routeCacheResponse.js.map +1 -0
  103. package/dist/cjs/interfaces/routeResponse.js +3 -0
  104. package/dist/cjs/interfaces/routeResponse.js.map +1 -0
  105. package/dist/cjs/interfaces/styleResponse.js +3 -0
  106. package/dist/cjs/interfaces/styleResponse.js.map +1 -0
  107. package/dist/cjs/logger/logger.js +91 -0
  108. package/dist/cjs/logger/logger.js.map +1 -0
  109. package/dist/cjs/logger/rollbar.js +24 -0
  110. package/dist/cjs/logger/rollbar.js.map +1 -0
  111. package/dist/cjs/map/map.js +1457 -0
  112. package/dist/cjs/map/map.js.map +1 -0
  113. package/dist/cjs/repository/repository.js +574 -0
  114. package/dist/cjs/repository/repository.js.map +1 -0
  115. package/dist/cjs/repository/requester.js +590 -0
  116. package/dist/cjs/repository/requester.js.map +1 -0
  117. package/dist/cjs/sdk.js +351 -0
  118. package/dist/cjs/sdk.js.map +1 -0
  119. package/dist/cjs/utils/error.js +20 -0
  120. package/dist/cjs/utils/error.js.map +1 -0
  121. package/dist/cjs/utils/images.js +26 -0
  122. package/dist/cjs/utils/images.js.map +1 -0
  123. package/dist/cjs/utils/nav-functions.js +150 -0
  124. package/dist/cjs/utils/nav-functions.js.map +1 -0
  125. package/dist/cjs/utils/opening-hours-helper.js +911 -0
  126. package/dist/cjs/utils/opening-hours-helper.js.map +1 -0
  127. package/dist/cjs/utils/route-utils.js +58 -0
  128. package/dist/cjs/utils/route-utils.js.map +1 -0
  129. package/dist/cjs/utils/update-css.js +77 -0
  130. package/dist/cjs/utils/update-css.js.map +1 -0
  131. package/dist/cjs/utils/utils.js +105 -0
  132. package/dist/cjs/utils/utils.js.map +1 -0
  133. package/dist/es/assets/icons.d.ts +86 -0
  134. package/dist/es/assets/icons.d.ts.map +1 -0
  135. package/dist/es/assets/icons.js +83 -0
  136. package/dist/es/assets/icons.js.map +1 -0
  137. package/dist/es/assets/route_animation_icon.svg +15 -0
  138. package/dist/es/assets/user-dot-icon.svg +3 -0
  139. package/dist/es/config/sdkConfig.d.ts +105 -0
  140. package/dist/es/config/sdkConfig.d.ts.map +1 -0
  141. package/dist/es/config/sdkConfig.js +2 -0
  142. package/dist/es/config/sdkConfig.js.map +1 -0
  143. package/dist/es/controllers/routeController.d.ts +161 -0
  144. package/dist/es/controllers/routeController.d.ts.map +1 -0
  145. package/dist/es/controllers/routeController.js +1050 -0
  146. package/dist/es/controllers/routeController.js.map +1 -0
  147. package/dist/es/domain/models/_internal.d.ts +21 -0
  148. package/dist/es/domain/models/_internal.d.ts.map +1 -0
  149. package/dist/es/domain/models/_internal.js +11 -0
  150. package/dist/es/domain/models/_internal.js.map +1 -0
  151. package/dist/es/domain/models/_rtl.d.ts +7 -0
  152. package/dist/es/domain/models/_rtl.d.ts.map +1 -0
  153. package/dist/es/domain/models/_rtl.js +7 -0
  154. package/dist/es/domain/models/_rtl.js.map +1 -0
  155. package/dist/es/domain/models/animation.d.ts +161 -0
  156. package/dist/es/domain/models/animation.d.ts.map +1 -0
  157. package/dist/es/domain/models/animation.js +58 -0
  158. package/dist/es/domain/models/animation.js.map +1 -0
  159. package/dist/es/domain/models/banner.d.ts +64 -0
  160. package/dist/es/domain/models/banner.d.ts.map +1 -0
  161. package/dist/es/domain/models/banner.js +20 -0
  162. package/dist/es/domain/models/banner.js.map +1 -0
  163. package/dist/es/domain/models/categories.d.ts +157 -0
  164. package/dist/es/domain/models/categories.d.ts.map +1 -0
  165. package/dist/es/domain/models/categories.js +20 -0
  166. package/dist/es/domain/models/categories.js.map +1 -0
  167. package/dist/es/domain/models/cityFilterOption.d.ts +15 -0
  168. package/dist/es/domain/models/cityFilterOption.d.ts.map +1 -0
  169. package/dist/es/domain/models/cityFilterOption.js +2 -0
  170. package/dist/es/domain/models/cityFilterOption.js.map +1 -0
  171. package/dist/es/domain/models/configuration.d.ts +523 -0
  172. package/dist/es/domain/models/configuration.d.ts.map +1 -0
  173. package/dist/es/domain/models/configuration.js +2 -0
  174. package/dist/es/domain/models/configuration.js.map +1 -0
  175. package/dist/es/domain/models/cssCustomization.d.ts +63 -0
  176. package/dist/es/domain/models/cssCustomization.d.ts.map +1 -0
  177. package/dist/es/domain/models/cssCustomization.js +2 -0
  178. package/dist/es/domain/models/cssCustomization.js.map +1 -0
  179. package/dist/es/domain/models/fitOptions.d.ts +175 -0
  180. package/dist/es/domain/models/fitOptions.d.ts.map +1 -0
  181. package/dist/es/domain/models/fitOptions.js +2 -0
  182. package/dist/es/domain/models/fitOptions.js.map +1 -0
  183. package/dist/es/domain/models/innerFloors.d.ts +42 -0
  184. package/dist/es/domain/models/innerFloors.d.ts.map +1 -0
  185. package/dist/es/domain/models/innerFloors.js +2 -0
  186. package/dist/es/domain/models/innerFloors.js.map +1 -0
  187. package/dist/es/domain/models/institution.d.ts +64 -0
  188. package/dist/es/domain/models/institution.d.ts.map +1 -0
  189. package/dist/es/domain/models/institution.js +40 -0
  190. package/dist/es/domain/models/institution.js.map +1 -0
  191. package/dist/es/domain/models/latLng.d.ts +14 -0
  192. package/dist/es/domain/models/latLng.d.ts.map +1 -0
  193. package/dist/es/domain/models/latLng.js +2 -0
  194. package/dist/es/domain/models/latLng.js.map +1 -0
  195. package/dist/es/domain/models/location.d.ts +10 -0
  196. package/dist/es/domain/models/location.d.ts.map +1 -0
  197. package/dist/es/domain/models/location.js +2 -0
  198. package/dist/es/domain/models/location.js.map +1 -0
  199. package/dist/es/domain/models/loggeable.d.ts +43 -0
  200. package/dist/es/domain/models/loggeable.d.ts.map +1 -0
  201. package/dist/es/domain/models/loggeable.js +48 -0
  202. package/dist/es/domain/models/loggeable.js.map +1 -0
  203. package/dist/es/domain/models/mapCamera.d.ts +109 -0
  204. package/dist/es/domain/models/mapCamera.d.ts.map +1 -0
  205. package/dist/es/domain/models/mapCamera.js +2 -0
  206. package/dist/es/domain/models/mapCamera.js.map +1 -0
  207. package/dist/es/domain/models/mapConfig.d.ts +238 -0
  208. package/dist/es/domain/models/mapConfig.d.ts.map +1 -0
  209. package/dist/es/domain/models/mapConfig.js +12 -0
  210. package/dist/es/domain/models/mapConfig.js.map +1 -0
  211. package/dist/es/domain/models/marker.d.ts +301 -0
  212. package/dist/es/domain/models/marker.d.ts.map +1 -0
  213. package/dist/es/domain/models/marker.js +396 -0
  214. package/dist/es/domain/models/marker.js.map +1 -0
  215. package/dist/es/domain/models/multilanguage.d.ts +27 -0
  216. package/dist/es/domain/models/multilanguage.d.ts.map +1 -0
  217. package/dist/es/domain/models/multilanguage.js +14 -0
  218. package/dist/es/domain/models/multilanguage.js.map +1 -0
  219. package/dist/es/domain/models/openingHours.d.ts +30 -0
  220. package/dist/es/domain/models/openingHours.d.ts.map +1 -0
  221. package/dist/es/domain/models/openingHours.js +2 -0
  222. package/dist/es/domain/models/openingHours.js.map +1 -0
  223. package/dist/es/domain/models/place.d.ts +167 -0
  224. package/dist/es/domain/models/place.d.ts.map +1 -0
  225. package/dist/es/domain/models/place.js +97 -0
  226. package/dist/es/domain/models/place.js.map +1 -0
  227. package/dist/es/domain/models/platform.d.ts +6 -0
  228. package/dist/es/domain/models/platform.d.ts.map +1 -0
  229. package/dist/es/domain/models/platform.js +2 -0
  230. package/dist/es/domain/models/platform.js.map +1 -0
  231. package/dist/es/domain/models/popover.d.ts +14 -0
  232. package/dist/es/domain/models/popover.d.ts.map +1 -0
  233. package/dist/es/domain/models/popover.js +2 -0
  234. package/dist/es/domain/models/popover.js.map +1 -0
  235. package/dist/es/domain/models/product.d.ts +36 -0
  236. package/dist/es/domain/models/product.d.ts.map +1 -0
  237. package/dist/es/domain/models/product.js +2 -0
  238. package/dist/es/domain/models/product.js.map +1 -0
  239. package/dist/es/domain/models/property.d.ts +172 -0
  240. package/dist/es/domain/models/property.d.ts.map +1 -0
  241. package/dist/es/domain/models/property.js +100 -0
  242. package/dist/es/domain/models/property.js.map +1 -0
  243. package/dist/es/domain/models/route.d.ts +199 -0
  244. package/dist/es/domain/models/route.d.ts.map +1 -0
  245. package/dist/es/domain/models/route.js +160 -0
  246. package/dist/es/domain/models/route.js.map +1 -0
  247. package/dist/es/domain/models/routeConfiguration.d.ts +140 -0
  248. package/dist/es/domain/models/routeConfiguration.d.ts.map +1 -0
  249. package/dist/es/domain/models/routeConfiguration.js +75 -0
  250. package/dist/es/domain/models/routeConfiguration.js.map +1 -0
  251. package/dist/es/domain/models/routeInstance.d.ts +52 -0
  252. package/dist/es/domain/models/routeInstance.d.ts.map +1 -0
  253. package/dist/es/domain/models/routeInstance.js +26 -0
  254. package/dist/es/domain/models/routeInstance.js.map +1 -0
  255. package/dist/es/domain/models/routeStyle.d.ts +47 -0
  256. package/dist/es/domain/models/routeStyle.d.ts.map +1 -0
  257. package/dist/es/domain/models/routeStyle.js +2 -0
  258. package/dist/es/domain/models/routeStyle.js.map +1 -0
  259. package/dist/es/domain/models/transport.d.ts +176 -0
  260. package/dist/es/domain/models/transport.d.ts.map +1 -0
  261. package/dist/es/domain/models/transport.js +18 -0
  262. package/dist/es/domain/models/transport.js.map +1 -0
  263. package/dist/es/domain/ports/ICache.d.ts +70 -0
  264. package/dist/es/domain/ports/ICache.d.ts.map +1 -0
  265. package/dist/es/domain/ports/ICache.js +2 -0
  266. package/dist/es/domain/ports/ICache.js.map +1 -0
  267. package/dist/es/domain/ports/IHttpClient.d.ts +77 -0
  268. package/dist/es/domain/ports/IHttpClient.d.ts.map +1 -0
  269. package/dist/es/domain/ports/IHttpClient.js +2 -0
  270. package/dist/es/domain/ports/IHttpClient.js.map +1 -0
  271. package/dist/es/domain/ports/ILogger.d.ts +61 -0
  272. package/dist/es/domain/ports/ILogger.d.ts.map +1 -0
  273. package/dist/es/domain/ports/ILogger.js +19 -0
  274. package/dist/es/domain/ports/ILogger.js.map +1 -0
  275. package/dist/es/domain/ports/index.d.ts +9 -0
  276. package/dist/es/domain/ports/index.d.ts.map +1 -0
  277. package/dist/es/domain/ports/index.js +6 -0
  278. package/dist/es/domain/ports/index.js.map +1 -0
  279. package/dist/es/index.d.ts +58 -0
  280. package/dist/es/index.d.ts.map +1 -0
  281. package/dist/es/index.js +48 -0
  282. package/dist/es/index.js.map +1 -0
  283. package/dist/es/infrastructure/cache/CacheManager.d.ts +106 -0
  284. package/dist/es/infrastructure/cache/CacheManager.d.ts.map +1 -0
  285. package/dist/es/infrastructure/cache/CacheManager.js +232 -0
  286. package/dist/es/infrastructure/cache/CacheManager.js.map +1 -0
  287. package/dist/es/infrastructure/cache/LRUCache.d.ts +70 -0
  288. package/dist/es/infrastructure/cache/LRUCache.d.ts.map +1 -0
  289. package/dist/es/infrastructure/cache/LRUCache.js +149 -0
  290. package/dist/es/infrastructure/cache/LRUCache.js.map +1 -0
  291. package/dist/es/infrastructure/cache/PersistentCache.d.ts +58 -0
  292. package/dist/es/infrastructure/cache/PersistentCache.d.ts.map +1 -0
  293. package/dist/es/infrastructure/cache/PersistentCache.js +156 -0
  294. package/dist/es/infrastructure/cache/PersistentCache.js.map +1 -0
  295. package/dist/es/infrastructure/cache/cacheConfig.d.ts +51 -0
  296. package/dist/es/infrastructure/cache/cacheConfig.d.ts.map +1 -0
  297. package/dist/es/infrastructure/cache/cacheConfig.js +66 -0
  298. package/dist/es/infrastructure/cache/cacheConfig.js.map +1 -0
  299. package/dist/es/infrastructure/http/FetchHttpClient.d.ts +41 -0
  300. package/dist/es/infrastructure/http/FetchHttpClient.d.ts.map +1 -0
  301. package/dist/es/infrastructure/http/FetchHttpClient.js +71 -0
  302. package/dist/es/infrastructure/http/FetchHttpClient.js.map +1 -0
  303. package/dist/es/infrastructure/logging/CountlyLogger.d.ts +47 -0
  304. package/dist/es/infrastructure/logging/CountlyLogger.d.ts.map +1 -0
  305. package/dist/es/infrastructure/logging/CountlyLogger.js +74 -0
  306. package/dist/es/infrastructure/logging/CountlyLogger.js.map +1 -0
  307. package/dist/es/interfaces/cache.d.ts +5 -0
  308. package/dist/es/interfaces/cache.d.ts.map +1 -0
  309. package/dist/es/interfaces/cache.js +2 -0
  310. package/dist/es/interfaces/cache.js.map +1 -0
  311. package/dist/es/interfaces/healthResponse.d.ts +17 -0
  312. package/dist/es/interfaces/healthResponse.d.ts.map +1 -0
  313. package/dist/es/interfaces/healthResponse.js +2 -0
  314. package/dist/es/interfaces/healthResponse.js.map +1 -0
  315. package/dist/es/interfaces/institutionResponse.d.ts +12 -0
  316. package/dist/es/interfaces/institutionResponse.d.ts.map +1 -0
  317. package/dist/es/interfaces/institutionResponse.js +2 -0
  318. package/dist/es/interfaces/institutionResponse.js.map +1 -0
  319. package/dist/es/interfaces/metadata.d.ts +7 -0
  320. package/dist/es/interfaces/metadata.d.ts.map +1 -0
  321. package/dist/es/interfaces/metadata.js +2 -0
  322. package/dist/es/interfaces/metadata.js.map +1 -0
  323. package/dist/es/interfaces/placeResponse.d.ts +50 -0
  324. package/dist/es/interfaces/placeResponse.d.ts.map +1 -0
  325. package/dist/es/interfaces/placeResponse.js +2 -0
  326. package/dist/es/interfaces/placeResponse.js.map +1 -0
  327. package/dist/es/interfaces/routeCacheResponse.d.ts +13 -0
  328. package/dist/es/interfaces/routeCacheResponse.d.ts.map +1 -0
  329. package/dist/es/interfaces/routeCacheResponse.js +2 -0
  330. package/dist/es/interfaces/routeCacheResponse.js.map +1 -0
  331. package/dist/es/interfaces/routeResponse.d.ts +42 -0
  332. package/dist/es/interfaces/routeResponse.d.ts.map +1 -0
  333. package/dist/es/interfaces/routeResponse.js +2 -0
  334. package/dist/es/interfaces/routeResponse.js.map +1 -0
  335. package/dist/es/interfaces/styleResponse.d.ts +5 -0
  336. package/dist/es/interfaces/styleResponse.d.ts.map +1 -0
  337. package/dist/es/interfaces/styleResponse.js +2 -0
  338. package/dist/es/interfaces/styleResponse.js.map +1 -0
  339. package/dist/es/logger/logger.d.ts +14 -0
  340. package/dist/es/logger/logger.d.ts.map +1 -0
  341. package/dist/es/logger/logger.js +84 -0
  342. package/dist/es/logger/logger.js.map +1 -0
  343. package/dist/es/logger/rollbar.d.ts +4 -0
  344. package/dist/es/logger/rollbar.d.ts.map +1 -0
  345. package/dist/es/logger/rollbar.js +20 -0
  346. package/dist/es/logger/rollbar.js.map +1 -0
  347. package/dist/es/map/map.d.ts +598 -0
  348. package/dist/es/map/map.d.ts.map +1 -0
  349. package/dist/es/map/map.js +1430 -0
  350. package/dist/es/map/map.js.map +1 -0
  351. package/dist/es/repository/repository.d.ts +65 -0
  352. package/dist/es/repository/repository.d.ts.map +1 -0
  353. package/dist/es/repository/repository.js +570 -0
  354. package/dist/es/repository/repository.js.map +1 -0
  355. package/dist/es/repository/requester.d.ts +169 -0
  356. package/dist/es/repository/requester.d.ts.map +1 -0
  357. package/dist/es/repository/requester.js +586 -0
  358. package/dist/es/repository/requester.js.map +1 -0
  359. package/dist/es/sdk.d.ts +279 -0
  360. package/dist/es/sdk.d.ts.map +1 -0
  361. package/dist/es/sdk.js +346 -0
  362. package/dist/es/sdk.js.map +1 -0
  363. package/dist/es/utils/error.d.ts +8 -0
  364. package/dist/es/utils/error.d.ts.map +1 -0
  365. package/dist/es/utils/error.js +16 -0
  366. package/dist/es/utils/error.js.map +1 -0
  367. package/dist/es/utils/images.d.ts +8 -0
  368. package/dist/es/utils/images.d.ts.map +1 -0
  369. package/dist/es/utils/images.js +22 -0
  370. package/dist/es/utils/images.js.map +1 -0
  371. package/dist/es/utils/nav-functions.d.ts +85 -0
  372. package/dist/es/utils/nav-functions.d.ts.map +1 -0
  373. package/dist/es/utils/nav-functions.js +143 -0
  374. package/dist/es/utils/nav-functions.js.map +1 -0
  375. package/dist/es/utils/opening-hours-helper.d.ts +395 -0
  376. package/dist/es/utils/opening-hours-helper.d.ts.map +1 -0
  377. package/dist/es/utils/opening-hours-helper.js +906 -0
  378. package/dist/es/utils/opening-hours-helper.js.map +1 -0
  379. package/dist/es/utils/route-utils.d.ts +28 -0
  380. package/dist/es/utils/route-utils.d.ts.map +1 -0
  381. package/dist/es/utils/route-utils.js +54 -0
  382. package/dist/es/utils/route-utils.js.map +1 -0
  383. package/dist/es/utils/update-css.d.ts +12 -0
  384. package/dist/es/utils/update-css.d.ts.map +1 -0
  385. package/dist/es/utils/update-css.js +73 -0
  386. package/dist/es/utils/update-css.js.map +1 -0
  387. package/dist/es/utils/utils.d.ts +39 -0
  388. package/dist/es/utils/utils.d.ts.map +1 -0
  389. package/dist/es/utils/utils.js +97 -0
  390. package/dist/es/utils/utils.js.map +1 -0
  391. package/dist/umd/index.js +16874 -0
  392. package/dist/umd/index.js.map +1 -0
  393. package/dist/umd/styles.css +107 -0
  394. package/dist/umd/styles.css.map +1 -0
  395. package/dist/umd/styles.js +37 -0
  396. package/dist/umd/styles.js.map +1 -0
  397. package/package.json +198 -0
@@ -0,0 +1,570 @@
1
+ import { Institution } from "../domain/models/institution";
2
+ import { Loggeable } from "../domain/models/loggeable";
3
+ import { MVXPlace } from "../domain/models/place";
4
+ import { MVXRoute } from "../domain/models/route";
5
+ import { MVXTransport } from "../domain/models/transport";
6
+ import { CacheManager } from "../infrastructure/cache/CacheManager";
7
+ import { Requester } from "./requester";
8
+ /**
9
+ * Extracts a human-readable error message from an API error response body.
10
+ * Handles various response formats: string, object with message/error field, or falls back to JSON.
11
+ * @param errorBody - The parsed JSON body from an error response
12
+ * @returns A string representation of the error
13
+ * @hidden
14
+ */
15
+ function extractErrorMessage(errorBody) {
16
+ if (typeof errorBody === "string")
17
+ return errorBody;
18
+ if (errorBody && typeof errorBody === "object") {
19
+ const obj = errorBody;
20
+ if (typeof obj.message === "string")
21
+ return obj.message;
22
+ if (typeof obj.error === "string")
23
+ return obj.error;
24
+ }
25
+ return JSON.stringify(errorBody);
26
+ }
27
+ /**
28
+ * Represents the repository for the SDK.
29
+ * @hidden
30
+ */
31
+ export class Repository extends Loggeable {
32
+ constructor(token, lang, apiUrl, cache, mapvxRequestContext) {
33
+ super();
34
+ this.currentLang = "en";
35
+ this.token = token;
36
+ this.currentLang = lang;
37
+ this.requester = new Requester(lang, apiUrl, mapvxRequestContext);
38
+ this.lang = lang;
39
+ this.cache = cache !== null && cache !== void 0 ? cache : new CacheManager();
40
+ }
41
+ /**
42
+ * function to change the lang of requests
43
+ * @param lang request response language
44
+ */
45
+ setLang(lang) {
46
+ this.currentLang = lang;
47
+ this.requester.setLang(lang);
48
+ }
49
+ prepareSegmentation(segmentation) {
50
+ return Object.assign(Object.assign({}, segmentation), { token: this.token });
51
+ }
52
+ async fetchAndParseMapStyle(placeId) {
53
+ if (placeId === undefined && this.baseStyle) {
54
+ return this.baseStyle;
55
+ }
56
+ try {
57
+ const response = await this.requester.fetchMapStyle(this.token, placeId);
58
+ if (!response.ok) {
59
+ const errorBody = await response.json();
60
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
61
+ }
62
+ const responseData = (await response.json());
63
+ const style = responseData.style;
64
+ if (placeId === undefined) {
65
+ this.baseStyle = style;
66
+ }
67
+ this.logEvent("fetchAndParseMapStyle");
68
+ return style;
69
+ }
70
+ catch (error) {
71
+ this.logError(error, { functionName: "fetchAndParseMapStyle" });
72
+ throw new Error("Failed to fetch and parse map style");
73
+ }
74
+ }
75
+ async fetchAndParseAnyMapStyle(institutionId, authToken) {
76
+ try {
77
+ const response = await this.requester.fetchAnyMapStyle(authToken, institutionId);
78
+ if (!response.ok) {
79
+ const errorBody = await response.json();
80
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
81
+ }
82
+ const responseData = (await response.json());
83
+ const style = responseData.style;
84
+ this.logEvent("fetchAndParseAnyMapStyle");
85
+ return style;
86
+ }
87
+ catch (error) {
88
+ this.logError(error, { functionName: "fetchAndParseAnyMapStyle" });
89
+ throw new Error("Failed to fetch and parse map style with bearer token");
90
+ }
91
+ }
92
+ async fetchAndParseInstitutions() {
93
+ try {
94
+ const response = await this.requester.fetchInstitutions(this.token);
95
+ if (!response.ok) {
96
+ const errorBody = await response.json();
97
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
98
+ }
99
+ const responseData = (await response.json());
100
+ const institutions = [];
101
+ for (const institutionData of responseData) {
102
+ const institution = new Institution(institutionData);
103
+ institutions.push(institution);
104
+ }
105
+ institutions.sort((a, b) => a.title.localeCompare(b.title));
106
+ const resultInstitution = institutions;
107
+ if (resultInstitution) {
108
+ this.logEvent("fetchAndParseInstitutionsV2");
109
+ return resultInstitution;
110
+ }
111
+ else {
112
+ throw new Error("No institutions associated to this apiKey");
113
+ }
114
+ }
115
+ catch (error) {
116
+ this.logError(error, { functionName: "fetchAndParseInstitutionsV2" });
117
+ throw new Error("Failed to fetch and parse institution");
118
+ }
119
+ }
120
+ async fetchAndParsePlaceDetail(placeId) {
121
+ try {
122
+ const cachedPlace = this.cache.getPlace(placeId, this.lang);
123
+ if (cachedPlace != null) {
124
+ this.logEvent("fetchAndParsePlaceDetail", { cached: "true" });
125
+ return cachedPlace;
126
+ }
127
+ const response = await this.requester.fetchPlaceDetail(this.token, placeId);
128
+ if (!response.ok) {
129
+ const errorBody = await response.json();
130
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
131
+ }
132
+ const responseData = (await response.json());
133
+ const place = new MVXPlace(responseData);
134
+ this.cache.setPlace(place.mapvxId, place, this.lang);
135
+ if (place.clientId != null) {
136
+ this.cache.setPlace(place.clientId, place, this.lang);
137
+ }
138
+ this.logEvent("fetchAndParsePlaceDetail", { cached: "false" });
139
+ return place;
140
+ }
141
+ catch (error) {
142
+ throw new Error("Failed to fetch and parse place detail");
143
+ }
144
+ }
145
+ async fetchAndParseAnyPlaceDetail(placeId, authToken) {
146
+ try {
147
+ const cachedPlace = this.cache.getPlace(placeId, this.lang);
148
+ if (cachedPlace != null) {
149
+ this.logEvent("fetchAndParseAnyPlaceDetail", { cached: "true" });
150
+ return cachedPlace;
151
+ }
152
+ const response = await this.requester.fetchAnyPlaceDetail(authToken, placeId);
153
+ if (!response.ok) {
154
+ const errorBody = await response.json();
155
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
156
+ }
157
+ const responseData = (await response.json());
158
+ const place = new MVXPlace(responseData);
159
+ this.cache.setPlace(place.mapvxId, place, this.lang);
160
+ if (place.clientId != null) {
161
+ this.cache.setPlace(place.clientId, place, this.lang);
162
+ }
163
+ this.logEvent("fetchAndParseAnyPlaceDetail", { cached: "false" });
164
+ return place;
165
+ }
166
+ catch (error) {
167
+ throw new Error("Failed to fetch and parse place detail with bearer token");
168
+ }
169
+ }
170
+ async fetchAndParseSubPlaces(parentPlaceId) {
171
+ try {
172
+ // Check cache first
173
+ const cachedSubPlaces = this.cache.getSubPlaces(parentPlaceId, this.currentLang);
174
+ if (cachedSubPlaces != null) {
175
+ this.logEvent("fetchAndParseSubPlaces", { cached: "true" });
176
+ return cachedSubPlaces.data;
177
+ }
178
+ const response = await this.requester.fetchSubPlaces(parentPlaceId, this.token);
179
+ if (!response.ok) {
180
+ const errorBody = await response.json();
181
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
182
+ }
183
+ const responseData = (await response.json());
184
+ const subPlaces = responseData.map((place) => new MVXPlace(place));
185
+ // Cache the result
186
+ this.cache.setSubPlaces(parentPlaceId, this.currentLang, {
187
+ timestamp: Date.now(),
188
+ data: subPlaces,
189
+ });
190
+ this.logEvent("fetchAndParseSubPlaces", { cached: "false" });
191
+ subPlaces.forEach((place) => {
192
+ if (!this.cache.hasPlace(place.mapvxId, this.currentLang)) {
193
+ this.cache.setPlace(place.mapvxId, place, this.currentLang);
194
+ }
195
+ if (place.clientId != null && !this.cache.hasPlace(place.clientId, this.currentLang)) {
196
+ this.cache.setPlace(place.clientId, place, this.currentLang);
197
+ }
198
+ });
199
+ return subPlaces;
200
+ }
201
+ catch (error) {
202
+ throw new Error("Failed to fetch and parse subplaces");
203
+ }
204
+ }
205
+ async fetchAndParseAnySubPlaces(parentPlaceId, authToken) {
206
+ try {
207
+ const response = await this.requester.fetchAnySubPlaces(parentPlaceId, authToken);
208
+ if (!response.ok) {
209
+ const errorBody = await response.json();
210
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
211
+ }
212
+ const responseData = (await response.json());
213
+ const subPlaces = responseData.map((place) => new MVXPlace(place));
214
+ this.logEvent("fetchAndParseAnySubPlaces");
215
+ subPlaces.forEach((place) => {
216
+ if (!this.cache.hasPlace(place.mapvxId, this.lang)) {
217
+ this.cache.setPlace(place.mapvxId, place, this.lang);
218
+ }
219
+ if (place.clientId != null && !this.cache.hasPlace(place.clientId, this.lang)) {
220
+ this.cache.setPlace(place.clientId, place, this.lang);
221
+ }
222
+ });
223
+ return subPlaces;
224
+ }
225
+ catch (error) {
226
+ throw new Error("Failed to fetch and parse any subplaces");
227
+ }
228
+ }
229
+ async fetchAndParseAvailablePlaces() {
230
+ try {
231
+ const response = await this.requester.fetchAllowedPlaces(this.token);
232
+ if (!response.ok) {
233
+ const errorBody = await response.json();
234
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
235
+ }
236
+ const typedResponseData = (await response.json());
237
+ const data = typedResponseData.map((data) => {
238
+ return new MVXPlace(data);
239
+ });
240
+ this.logEvent("fetchAndParseAvailablePlaces");
241
+ data.forEach((place) => {
242
+ if (!this.cache.hasPlace(place.mapvxId, this.lang)) {
243
+ this.cache.setPlace(place.mapvxId, place, this.lang);
244
+ }
245
+ if (place.clientId != null && !this.cache.hasPlace(place.clientId, this.lang)) {
246
+ this.cache.setPlace(place.clientId, place, this.lang);
247
+ }
248
+ });
249
+ return data;
250
+ }
251
+ catch (error) {
252
+ this.logError(error, { functionName: "fetchAndParseAvailablePlaces" });
253
+ throw new Error("Failed to fetch and parse parent places");
254
+ }
255
+ }
256
+ async fetchAndParsePlacesFromInstitution(institutionId, authToken) {
257
+ try {
258
+ const response = await this.requester.fetchPlacesFromAnyInstitution(institutionId, authToken);
259
+ if (!response.ok) {
260
+ const errorBody = await response.json();
261
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
262
+ }
263
+ const typedResponseData = (await response.json());
264
+ const data = typedResponseData.map((data) => {
265
+ return new MVXPlace(data);
266
+ });
267
+ this.logEvent("fetchAndParsePlacesFromInstitution");
268
+ data.forEach((place) => {
269
+ if (!this.cache.hasPlace(place.mapvxId, this.lang)) {
270
+ this.cache.setPlace(place.mapvxId, place, this.lang);
271
+ }
272
+ if (place.clientId != null && !this.cache.hasPlace(place.clientId, this.lang)) {
273
+ this.cache.setPlace(place.clientId, place, this.lang);
274
+ }
275
+ });
276
+ return data;
277
+ }
278
+ catch (error) {
279
+ this.logError(error, {
280
+ functionName: "fetchAndParsePlacesFromInstitution",
281
+ });
282
+ throw new Error("Failed to fetch and parse parent places from institution");
283
+ }
284
+ }
285
+ getCachedPlaces(ids) {
286
+ const places = [];
287
+ ids.forEach((id) => {
288
+ const place = this.cache.getPlace(id, this.lang);
289
+ if (place != null) {
290
+ places.push(place);
291
+ }
292
+ });
293
+ return places;
294
+ }
295
+ /**
296
+ * Get cached subplaces for a parent place without making additional requests.
297
+ * @param parentPlaceId The parent place identifier
298
+ * @returns Array of cached subplaces or undefined if not cached
299
+ */
300
+ getCachedSubPlaces(parentPlaceId) {
301
+ const cachedSubPlaces = this.cache.getSubPlaces(parentPlaceId, this.currentLang);
302
+ return cachedSubPlaces === null || cachedSubPlaces === void 0 ? void 0 : cachedSubPlaces.data;
303
+ }
304
+ async fetchAndParseRoute(config) {
305
+ try {
306
+ let destinationId = "";
307
+ if ("id" in config.finalLocation) {
308
+ destinationId = config.finalLocation.id;
309
+ }
310
+ const cachedResponse = this.cache.getRoute(destinationId);
311
+ if (cachedResponse != null) {
312
+ this.logEvent("fetchAndParseRoute", { cached: "true" });
313
+ this.debugLog("Route cache testing. Found in caché.");
314
+ return cachedResponse.data;
315
+ }
316
+ const response = await this.requester.fetchRoute(config, this.token);
317
+ if (!response.ok) {
318
+ const errorBody = await response.json();
319
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
320
+ }
321
+ const responseData = (await response.json());
322
+ const route = new MVXRoute(responseData[0]);
323
+ this.logEvent("fetchAndParseRoute");
324
+ this.debugLog("Route cache testing. Fetched.");
325
+ return route;
326
+ }
327
+ catch (error) {
328
+ throw new Error("Failed to fetch and parse route");
329
+ }
330
+ }
331
+ async fetchAndParseRouteV2(config) {
332
+ try {
333
+ let destinationId = "";
334
+ if ("id" in config.finalLocation) {
335
+ destinationId = config.finalLocation.id;
336
+ }
337
+ const cachedResponse = this.cache.getRoute(destinationId);
338
+ if (cachedResponse != null) {
339
+ this.logEvent("fetchAndParseRouteV2", { cached: "true" });
340
+ this.debugLog("Route cache testing. Found in caché.");
341
+ return cachedResponse.data;
342
+ }
343
+ const response = await this.requester.fetchRouteV2(config, this.token);
344
+ if (!response.ok) {
345
+ const errorBody = await response.json();
346
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
347
+ }
348
+ const responseData = (await response.json());
349
+ const route = new MVXRoute(responseData[0]);
350
+ this.logEvent("fetchAndParseRouteV2");
351
+ this.debugLog("Route cache testing. Fetched.");
352
+ return route;
353
+ }
354
+ catch (error) {
355
+ throw new Error("Failed to fetch and parse route");
356
+ }
357
+ }
358
+ async fetchAndParseTransport(stopId) {
359
+ try {
360
+ const cachedResponse = this.cache.getVehicle(stopId, this.lang);
361
+ if (cachedResponse != null &&
362
+ (Date.now() - cachedResponse.timestamp < 60 * 100 ||
363
+ cachedResponse.data.routes.length === 0)) {
364
+ this.logEvent("fetchAndParseTransport", { cached: "true" });
365
+ return cachedResponse.data;
366
+ }
367
+ const response = await this.requester.fetchTransport(this.token, stopId);
368
+ if (!response.ok) {
369
+ const errorBody = await response.json();
370
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
371
+ }
372
+ const typedResponseData = (await response.json());
373
+ if (typedResponseData.realtimeSchedules.length > 0) {
374
+ const stopsPromises = typedResponseData.realtimeSchedules.map((e) => this.fetchAndParseStops(stopId, e.vehicleId));
375
+ const stops = await Promise.all(stopsPromises);
376
+ if (stops.length > 0) {
377
+ typedResponseData.realtimeSchedules.forEach((vehicle) => {
378
+ var _a, _b;
379
+ vehicle.stops = (_b = (_a = stops.find((e) => e.id == vehicle.vehicleId)) === null || _a === void 0 ? void 0 : _a.places) !== null && _b !== void 0 ? _b : [];
380
+ });
381
+ }
382
+ }
383
+ const transport = new MVXTransport(typedResponseData);
384
+ this.cache.setVehicle(stopId, {
385
+ timestamp: Date.now(),
386
+ data: transport,
387
+ }, this.lang);
388
+ this.logEvent("fetchAndParseTransport", { cached: "false" });
389
+ return transport;
390
+ }
391
+ catch (error) {
392
+ const cachedResponse = this.cache.getVehicle(stopId, this.lang);
393
+ if (cachedResponse != null) {
394
+ const transport = new MVXTransport({
395
+ realtimeSchedules: [],
396
+ schedules: cachedResponse.data.schedule,
397
+ });
398
+ this.logEvent("fetchAndParseTransport", { cached: "true" });
399
+ return transport;
400
+ }
401
+ else {
402
+ throw new Error("Failed to fetch and parse transport");
403
+ }
404
+ }
405
+ }
406
+ async fetchAndParseStops(stopId, vehicleId) {
407
+ try {
408
+ const cachedResponse = this.cache.getStops(stopId + vehicleId, this.lang);
409
+ if (cachedResponse != null && Date.now() - cachedResponse.timestamp < 60 * 1000) {
410
+ this.logEvent("fetchAndParseStops", { cached: "true" });
411
+ return { id: vehicleId, places: cachedResponse.data };
412
+ }
413
+ const response = await this.requester.fetchStops(this.token, stopId, vehicleId);
414
+ if (!response.ok) {
415
+ const errorBody = await response.json();
416
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
417
+ }
418
+ const typedResponseData = (await response.json());
419
+ const data = typedResponseData.map((e) => {
420
+ return new MVXPlace(e);
421
+ });
422
+ this.cache.setStops(stopId + vehicleId, { timestamp: Date.now(), data }, this.lang);
423
+ this.logEvent("fetchAndParseStops", { cached: "false" });
424
+ return { id: vehicleId, places: data };
425
+ }
426
+ catch (error) {
427
+ throw new Error("Failed to fetch and parse stops");
428
+ }
429
+ }
430
+ async fetchAndParseSearchResults(institutionId, input, parentPlaces, origin, lat, lng, floor) {
431
+ try {
432
+ const response = await this.requester.fetchSearchResults(institutionId, input, this.token, parentPlaces, origin, lat, lng, floor);
433
+ if (!response.ok) {
434
+ const errorBody = await response.json();
435
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
436
+ }
437
+ const responseData = (await response.json());
438
+ const searchResults = responseData.map((result) => {
439
+ return new MVXPlace(result);
440
+ });
441
+ return searchResults;
442
+ }
443
+ catch (error) {
444
+ throw new Error("Failed to fetch and parse search results");
445
+ }
446
+ }
447
+ async fetchAndParseRoutesFromOrigin(parentPlaceId, fromPlaceId, announceFormat, unitSystem, mode) {
448
+ try {
449
+ const response = await this.requester.fetchRoutesForOrigin(this.token, parentPlaceId, fromPlaceId, announceFormat, unitSystem, mode);
450
+ if (!response.ok) {
451
+ const errorBody = await response.json();
452
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
453
+ }
454
+ const { routes, accessibleRoutes } = (await response.json());
455
+ Object.entries(routes).forEach(([destinationId, routeResponse]) => {
456
+ const route = new MVXRoute(routeResponse[0]);
457
+ this.cache.setRoute(destinationId, {
458
+ timestamp: Date.now(),
459
+ data: route,
460
+ });
461
+ });
462
+ Object.entries(accessibleRoutes).forEach(([destinationId, routeResponse]) => {
463
+ const route = new MVXRoute(routeResponse[0]);
464
+ this.cache.setAccessibleRoute(destinationId, {
465
+ timestamp: Date.now(),
466
+ data: route,
467
+ });
468
+ });
469
+ this.debugLog("Route cache testing. Cache populated!");
470
+ }
471
+ catch (error) {
472
+ throw new Error("Failed to fetch and parse routes from origin results");
473
+ }
474
+ }
475
+ async fetchAndParseCacheTimestamp(parentPlaceId) {
476
+ try {
477
+ const response = await this.requester.fetchCacheTimestamp(this.token, parentPlaceId);
478
+ if (!response.ok) {
479
+ const errorBody = await response.json();
480
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
481
+ }
482
+ const { lastUpdate } = (await response.json());
483
+ return lastUpdate;
484
+ }
485
+ catch (error) {
486
+ throw new Error("Failed to fetch and parse cache timestamp");
487
+ }
488
+ }
489
+ cleanRoutesCache() {
490
+ this.cache.cleanRoutesCache();
491
+ this.cache.cleanAccessibleRoutesCache();
492
+ }
493
+ async fetchAndParseConfiguration(placeId, product) {
494
+ try {
495
+ // Check cache first
496
+ const cachedConfig = this.cache.getConfiguration(placeId || "default", product || "default", this.currentLang);
497
+ if (cachedConfig != null) {
498
+ this.logEvent("fetchAndParseConfiguration", { cached: "true" });
499
+ return cachedConfig.data;
500
+ }
501
+ const response = await this.requester.fetchConfiguration(this.token, placeId, product);
502
+ if (!response.ok) {
503
+ const errorBody = await response.json();
504
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
505
+ }
506
+ const config = (await response.json());
507
+ // Cache the result
508
+ this.cache.setConfiguration(placeId || "default", product || "default", this.currentLang, {
509
+ timestamp: Date.now(),
510
+ data: config,
511
+ });
512
+ this.logEvent("fetchAndParseConfiguration", { cached: "false" });
513
+ return config;
514
+ }
515
+ catch (error) {
516
+ this.logError(error, { functionName: "fetchAndParseConfiguration" });
517
+ throw new Error("Failed to fetch and parse configuration");
518
+ }
519
+ }
520
+ async fetchAndParseCategories(placeId) {
521
+ try {
522
+ // Check cache first
523
+ const cachedCategories = this.cache.getCategories(placeId || "default", this.currentLang);
524
+ if (cachedCategories != null) {
525
+ this.logEvent("fetchAndParseCategories", { cached: "true" });
526
+ return cachedCategories.data;
527
+ }
528
+ const response = await this.requester.fetchCategories(this.token, placeId);
529
+ if (!response.ok) {
530
+ const errorBody = await response.json();
531
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
532
+ }
533
+ const categories = (await response.json());
534
+ // Cache the result
535
+ this.cache.setCategories(placeId || "default", this.currentLang, {
536
+ timestamp: Date.now(),
537
+ data: categories,
538
+ });
539
+ this.logEvent("fetchAndParseCategories", { cached: "false" });
540
+ return categories;
541
+ }
542
+ catch (error) {
543
+ throw new Error("Failed to fetch and parse categories");
544
+ }
545
+ }
546
+ async fetchAndParseCssCustomization(type) {
547
+ try {
548
+ const response = await this.requester.fetchCssCustomization(this.token, type);
549
+ if (!response.ok) {
550
+ const errorBody = await response.json();
551
+ throw new Error(`Fetch failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
552
+ }
553
+ const cssCustomization = (await response.json());
554
+ return cssCustomization;
555
+ }
556
+ catch (error) {
557
+ throw new Error("Failed to fetch and parse css customization");
558
+ }
559
+ }
560
+ async postAndParseHealthPing(healthPingId, placeId, totemId, status) {
561
+ const response = await this.requester.postHealth(this.token, healthPingId, placeId, totemId, status);
562
+ if (!response.ok) {
563
+ const errorBody = await response.json();
564
+ throw new Error(`Post failed with status ${response.status}: ${extractErrorMessage(errorBody)}`);
565
+ }
566
+ const data = (await response.json());
567
+ return data;
568
+ }
569
+ }
570
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/repository/repository.ts"],"names":[],"mappings":"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"}