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