@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,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheManager = void 0;
4
+ const cacheConfig_1 = require("./cacheConfig");
5
+ const LRUCache_1 = require("./LRUCache");
6
+ const PersistentCache_1 = require("./PersistentCache");
7
+ /**
8
+ * CacheManager - Facade for managing multiple typed caches
9
+ *
10
+ * Replaces the old Cache singleton with a more flexible, configurable system.
11
+ * Supports:
12
+ * - Multiple cache types (places, routes, configurations, etc.)
13
+ * - Language-aware caching
14
+ * - Optional localStorage persistence
15
+ * - Configurable limits and TTL per cache type
16
+ *
17
+ * @group Configuration
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const cacheManager = new CacheManager({
22
+ * persistent: true,
23
+ * maxStorageBytes: 5 * 1024 * 1024,
24
+ * configs: {
25
+ * places: { maxItems: 1000, ttlMs: 60000 }
26
+ * }
27
+ * })
28
+ *
29
+ * cacheManager.setPlace("place-1", "en", placeData)
30
+ * const place = cacheManager.getPlace("place-1", "en")
31
+ * ```
32
+ */
33
+ class CacheManager {
34
+ constructor(config) {
35
+ var _a, _b, _c;
36
+ this.caches = new Map();
37
+ this.persistent = (_a = config === null || config === void 0 ? void 0 : config.persistent) !== null && _a !== void 0 ? _a : false;
38
+ this.maxStorageBytes = (_b = config === null || config === void 0 ? void 0 : config.maxStorageBytes) !== null && _b !== void 0 ? _b : cacheConfig_1.DEFAULT_MAX_STORAGE_BYTES;
39
+ // Initialize all cache types
40
+ const cacheTypes = [
41
+ "places",
42
+ "routes",
43
+ "accessibleRoutes",
44
+ "configurations",
45
+ "categories",
46
+ "vehicles",
47
+ "stops",
48
+ "subPlaces",
49
+ ];
50
+ for (const cacheType of cacheTypes) {
51
+ const cacheConfig = (0, cacheConfig_1.getCacheConfig)(cacheType, (_c = config === null || config === void 0 ? void 0 : config.configs) === null || _c === void 0 ? void 0 : _c[cacheType]);
52
+ this.caches.set(cacheType, this.createCache(cacheConfig));
53
+ }
54
+ }
55
+ /**
56
+ * Creates a cache instance based on persistence configuration
57
+ */
58
+ createCache(config) {
59
+ if (this.persistent && config.persistenceKey) {
60
+ return new PersistentCache_1.PersistentCache(config, this.maxStorageBytes);
61
+ }
62
+ return new LRUCache_1.LRUCache(config);
63
+ }
64
+ /**
65
+ * Generates a language-aware cache key
66
+ */
67
+ makeKey(id, lang) {
68
+ return `${id}_${lang}`;
69
+ }
70
+ /**
71
+ * Generates a composite key for configurations
72
+ */
73
+ makeConfigKey(placeId, product, lang) {
74
+ return `${placeId || "default"}_${product || "default"}_${lang}`;
75
+ }
76
+ // ==================== Places ====================
77
+ getPlace(id, lang) {
78
+ const cache = this.caches.get("places");
79
+ return cache.get(this.makeKey(id, lang));
80
+ }
81
+ /**
82
+ * Stores a place in cache
83
+ * @param id - Place ID
84
+ * @param value - Place data
85
+ * @param lang - Language code
86
+ */
87
+ setPlace(id, value, lang) {
88
+ const cache = this.caches.get("places");
89
+ cache.set(this.makeKey(id, lang), value);
90
+ }
91
+ hasPlace(id, lang) {
92
+ const cache = this.caches.get("places");
93
+ return cache.has(this.makeKey(id, lang));
94
+ }
95
+ // ==================== Routes ====================
96
+ getRoute(destinationId) {
97
+ const cache = this.caches.get("routes");
98
+ return cache.get(destinationId);
99
+ }
100
+ setRoute(destinationId, value) {
101
+ const cache = this.caches.get("routes");
102
+ cache.set(destinationId, value);
103
+ }
104
+ cleanRoutesCache() {
105
+ this.caches.get("routes").clear();
106
+ }
107
+ // ==================== Accessible Routes ====================
108
+ getAccessibleRoute(destinationId) {
109
+ const cache = this.caches.get("accessibleRoutes");
110
+ return cache.get(destinationId);
111
+ }
112
+ setAccessibleRoute(destinationId, value) {
113
+ const cache = this.caches.get("accessibleRoutes");
114
+ cache.set(destinationId, value);
115
+ }
116
+ cleanAccessibleRoutesCache() {
117
+ this.caches.get("accessibleRoutes").clear();
118
+ }
119
+ // ==================== Configurations ====================
120
+ getConfiguration(placeId, product, lang) {
121
+ const cache = this.caches.get("configurations");
122
+ return cache.get(this.makeConfigKey(placeId, product, lang));
123
+ }
124
+ setConfiguration(placeId, product, lang, value) {
125
+ const cache = this.caches.get("configurations");
126
+ cache.set(this.makeConfigKey(placeId, product, lang), value);
127
+ }
128
+ // ==================== Categories ====================
129
+ getCategories(placeId, lang) {
130
+ const cache = this.caches.get("categories");
131
+ return cache.get(this.makeKey(placeId || "default", lang));
132
+ }
133
+ setCategories(placeId, lang, value) {
134
+ const cache = this.caches.get("categories");
135
+ cache.set(this.makeKey(placeId || "default", lang), value);
136
+ }
137
+ // ==================== Vehicles ====================
138
+ getVehicle(id, lang) {
139
+ const cache = this.caches.get("vehicles");
140
+ return cache.get(this.makeKey(id, lang));
141
+ }
142
+ /**
143
+ * Stores a vehicle in cache
144
+ * @param id - Stop ID
145
+ * @param value - Vehicle data (can be DataSnapshot for backward compatibility)
146
+ * @param lang - Language code
147
+ */
148
+ setVehicle(id, value, lang) {
149
+ const cache = this.caches.get("vehicles");
150
+ cache.set(this.makeKey(id, lang), value);
151
+ }
152
+ // ==================== Stops ====================
153
+ getStops(id, lang) {
154
+ const cache = this.caches.get("stops");
155
+ return cache.get(this.makeKey(id, lang));
156
+ }
157
+ /**
158
+ * Stores stops in cache
159
+ * @param id - Combined stop+vehicle ID
160
+ * @param value - Stops data (can be DataSnapshot for backward compatibility)
161
+ * @param lang - Language code
162
+ */
163
+ setStops(id, value, lang) {
164
+ const cache = this.caches.get("stops");
165
+ cache.set(this.makeKey(id, lang), value);
166
+ }
167
+ // ==================== SubPlaces ====================
168
+ getSubPlaces(parentPlaceId, lang) {
169
+ const cache = this.caches.get("subPlaces");
170
+ return cache.get(this.makeKey(parentPlaceId, lang));
171
+ }
172
+ /**
173
+ * Stores subplaces in cache
174
+ * @param parentPlaceId - Parent place ID
175
+ * @param lang - Language code
176
+ * @param value - SubPlaces data (can be DataSnapshot for backward compatibility)
177
+ */
178
+ setSubPlaces(parentPlaceId, lang, value) {
179
+ const cache = this.caches.get("subPlaces");
180
+ cache.set(this.makeKey(parentPlaceId, lang), value);
181
+ }
182
+ // ==================== Global Operations ====================
183
+ /**
184
+ * Clears all caches
185
+ */
186
+ cleanAllCache() {
187
+ for (const cache of this.caches.values()) {
188
+ cache.clear();
189
+ }
190
+ }
191
+ /**
192
+ * Clears all entries for a specific language across all language-aware caches
193
+ */
194
+ cleanLanguageCache(lang) {
195
+ const languageAwareCaches = [
196
+ "places",
197
+ "configurations",
198
+ "categories",
199
+ "vehicles",
200
+ "stops",
201
+ "subPlaces",
202
+ ];
203
+ const suffix = `_${lang}`;
204
+ for (const cacheType of languageAwareCaches) {
205
+ const cache = this.caches.get(cacheType);
206
+ const keys = cache.keys();
207
+ for (const key of keys) {
208
+ if (key.endsWith(suffix)) {
209
+ cache.delete(key);
210
+ }
211
+ }
212
+ }
213
+ }
214
+ /**
215
+ * Gets statistics for a specific cache type
216
+ */
217
+ getCacheStats(cacheType) {
218
+ const cache = this.caches.get(cacheType);
219
+ if (!cache) {
220
+ return { size: 0, maxItems: 0 };
221
+ }
222
+ return cache.getStats();
223
+ }
224
+ /**
225
+ * Gets statistics for all caches
226
+ */
227
+ getAllCacheStats() {
228
+ const stats = {};
229
+ for (const [cacheType, cache] of this.caches) {
230
+ stats[cacheType] = cache.getStats();
231
+ }
232
+ return stats;
233
+ }
234
+ }
235
+ exports.CacheManager = CacheManager;
236
+ //# sourceMappingURL=CacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":";;;AACA,+CAOsB;AACtB,yCAAqC;AACrC,uDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,YAAY;IAKvB,YAAY,MAA2B;;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,mCAAI,KAAK,CAAA;QAC7C,IAAI,CAAC,eAAe,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,mCAAI,uCAAyB,CAAA;QAE3E,6BAA6B;QAC7B,MAAM,UAAU,GAAgB;YAC9B,QAAQ;YACR,QAAQ;YACR,kBAAkB;YAClB,gBAAgB;YAChB,YAAY;YACZ,UAAU;YACV,OAAO;YACP,WAAW;SACZ,CAAA;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,WAAW,GAAG,IAAA,4BAAc,EAAC,SAAS,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAG,SAAS,CAAC,CAAC,CAAA;YAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;SAC1D;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAI,MAAmB;QACxC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,cAAc,EAAE;YAC5C,OAAO,IAAI,iCAAe,CAAI,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;SAC5D;QACD,OAAO,IAAI,mBAAQ,CAAI,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,EAAU,EAAE,IAAY;QACtC,OAAO,GAAG,EAAE,IAAI,IAAI,EAAE,CAAA;IACxB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAe,EAAE,OAAe,EAAE,IAAY;QAClE,OAAO,GAAG,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,IAAI,EAAE,CAAA;IAClE,CAAC;IAED,mDAAmD;IAEnD,QAAQ,CAAI,EAAU,EAAE,IAAY;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;QACpD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAI,EAAU,EAAE,KAAQ,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;QACpD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,QAAQ,CAAC,EAAU,EAAE,IAAY;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,mDAAmD;IAEnD,QAAQ,CAAI,aAAqB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;QACpD,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACjC,CAAC;IAED,QAAQ,CAAI,aAAqB,EAAE,KAAQ;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,CAAA;QACpD,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;IAED,8DAA8D;IAE9D,kBAAkB,CAAI,aAAqB;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAc,CAAA;QAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACjC,CAAC;IAED,kBAAkB,CAAI,aAAqB,EAAE,KAAQ;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAc,CAAA;QAC9D,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAE,CAAC,KAAK,EAAE,CAAA;IAC9C,CAAC;IAED,2DAA2D;IAE3D,gBAAgB,CAAI,OAAe,EAAE,OAAe,EAAE,IAAY;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAc,CAAA;QAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,gBAAgB,CAAI,OAAe,EAAE,OAAe,EAAE,IAAY,EAAE,KAAQ;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAc,CAAA;QAC5D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC9D,CAAC;IAED,uDAAuD;IAEvD,aAAa,CAAI,OAAe,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAc,CAAA;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,aAAa,CAAI,OAAe,EAAE,IAAY,EAAE,KAAQ;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAc,CAAA;QACxD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IAED,qDAAqD;IAErD,UAAU,CAAI,EAAU,EAAE,IAAY;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAc,CAAA;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAI,EAAU,EAAE,KAAQ,EAAE,IAAY;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAc,CAAA;QACtD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,kDAAkD;IAElD,QAAQ,CAAI,EAAU,EAAE,IAAY;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAc,CAAA;QACnD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAI,EAAU,EAAE,KAAQ,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAc,CAAA;QACnD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,sDAAsD;IAEtD,YAAY,CAAI,aAAqB,EAAE,IAAY;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAc,CAAA;QACvD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAA;IACrD,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAI,aAAqB,EAAE,IAAY,EAAE,KAAQ;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAc,CAAA;QACvD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,8DAA8D;IAE9D;;OAEG;IACH,aAAa;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxC,KAAK,CAAC,KAAK,EAAE,CAAA;SACd;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAY;QAC7B,MAAM,mBAAmB,GAAgB;YACvC,QAAQ;YACR,gBAAgB;YAChB,YAAY;YACZ,UAAU;YACV,OAAO;YACP,WAAW;SACZ,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;QAEzB,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACxB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;aACF;SACF;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAoB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;SAChC;QACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,KAAK,GAA2C,EAAE,CAAA;QAExD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5C,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;SACpC;QAED,OAAO,KAAsC,CAAA;IAC/C,CAAC;CACF;AAtPD,oCAsPC"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LRUCache = void 0;
4
+ /**
5
+ * LRU (Least Recently Used) Cache implementation
6
+ * Implements the ICache interface with:
7
+ * - Configurable capacity limits
8
+ * - TTL-based expiration
9
+ * - LRU eviction policy
10
+ * - Hit rate tracking
11
+ *
12
+ * @typeParam T - The type of values stored in the cache
13
+ * @group Configuration
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const cache = new LRUCache<string>({ maxItems: 100, ttlMs: 60000 })
18
+ * cache.set("key1", "value1")
19
+ * const value = cache.get("key1") // "value1"
20
+ * ```
21
+ */
22
+ class LRUCache {
23
+ constructor(config) {
24
+ // Hit rate tracking
25
+ this.hits = 0;
26
+ this.misses = 0;
27
+ // Monotonic counter for LRU ordering (avoids issues with same-millisecond operations)
28
+ this.accessCounter = 0;
29
+ this.cache = new Map();
30
+ this.maxItems = config.maxItems;
31
+ this.ttlMs = config.ttlMs;
32
+ }
33
+ /**
34
+ * Retrieves a value from the cache
35
+ * Updates access time for LRU tracking
36
+ * Returns undefined if key doesn't exist or is expired
37
+ */
38
+ get(key) {
39
+ const entry = this.cache.get(key);
40
+ if (!entry) {
41
+ this.misses++;
42
+ return undefined;
43
+ }
44
+ // Check TTL expiration (skip if ttlMs is 0)
45
+ if (this.ttlMs > 0 && this.isExpired(entry)) {
46
+ this.cache.delete(key);
47
+ this.misses++;
48
+ return undefined;
49
+ }
50
+ // Update access time for LRU (using monotonic counter)
51
+ entry.accessTime = ++this.accessCounter;
52
+ this.hits++;
53
+ return entry.value;
54
+ }
55
+ /**
56
+ * Stores a value in the cache
57
+ * Evicts LRU item if at capacity
58
+ * Refreshes TTL for existing keys
59
+ */
60
+ set(key, value) {
61
+ const now = Date.now();
62
+ const accessTime = ++this.accessCounter;
63
+ // If key already exists, update it (no eviction needed)
64
+ if (this.cache.has(key)) {
65
+ this.cache.set(key, {
66
+ value,
67
+ timestamp: now,
68
+ accessTime,
69
+ });
70
+ return;
71
+ }
72
+ // Evict if at capacity
73
+ if (this.cache.size >= this.maxItems) {
74
+ this.evictLRU();
75
+ }
76
+ this.cache.set(key, {
77
+ value,
78
+ timestamp: now,
79
+ accessTime,
80
+ });
81
+ }
82
+ /**
83
+ * Checks if a key exists and is not expired
84
+ */
85
+ has(key) {
86
+ const entry = this.cache.get(key);
87
+ if (!entry) {
88
+ return false;
89
+ }
90
+ // Check TTL expiration
91
+ if (this.ttlMs > 0 && this.isExpired(entry)) {
92
+ this.cache.delete(key);
93
+ return false;
94
+ }
95
+ return true;
96
+ }
97
+ /**
98
+ * Removes a specific key from the cache
99
+ */
100
+ delete(key) {
101
+ return this.cache.delete(key);
102
+ }
103
+ /**
104
+ * Removes all entries from the cache
105
+ */
106
+ clear() {
107
+ this.cache.clear();
108
+ this.hits = 0;
109
+ this.misses = 0;
110
+ }
111
+ /**
112
+ * Returns all keys in the cache
113
+ */
114
+ keys() {
115
+ return Array.from(this.cache.keys());
116
+ }
117
+ /**
118
+ * Returns cache statistics
119
+ */
120
+ getStats() {
121
+ const totalRequests = this.hits + this.misses;
122
+ const hitRate = totalRequests > 0 ? (this.hits / totalRequests) * 100 : undefined;
123
+ return {
124
+ size: this.cache.size,
125
+ maxItems: this.maxItems,
126
+ hitRate,
127
+ };
128
+ }
129
+ /**
130
+ * Checks if an entry has expired based on TTL
131
+ */
132
+ isExpired(entry) {
133
+ return Date.now() - entry.timestamp > this.ttlMs;
134
+ }
135
+ /**
136
+ * Evicts the least recently used item from the cache
137
+ */
138
+ evictLRU() {
139
+ let oldestKey = null;
140
+ let oldestAccessTime = Infinity;
141
+ for (const [key, entry] of this.cache) {
142
+ if (entry.accessTime < oldestAccessTime) {
143
+ oldestAccessTime = entry.accessTime;
144
+ oldestKey = key;
145
+ }
146
+ }
147
+ if (oldestKey !== null) {
148
+ this.cache.delete(oldestKey);
149
+ }
150
+ }
151
+ }
152
+ exports.LRUCache = LRUCache;
153
+ //# sourceMappingURL=LRUCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LRUCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/LRUCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PersistentCache = void 0;
4
+ const cacheConfig_1 = require("./cacheConfig");
5
+ const LRUCache_1 = require("./LRUCache");
6
+ /**
7
+ * Persistent Cache implementation (Decorator pattern)
8
+ * Wraps LRUCache with localStorage persistence.
9
+ *
10
+ * Features:
11
+ * - Automatic save to localStorage on modifications
12
+ * - Hydration from localStorage on initialization
13
+ * - Graceful degradation when localStorage unavailable
14
+ * - Storage quota management
15
+ * - Expired items filtered during hydration
16
+ *
17
+ * @typeParam T - The type of values stored in the cache
18
+ * @group Configuration
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const cache = new PersistentCache<string>({
23
+ * maxItems: 100,
24
+ * ttlMs: 60000,
25
+ * persistenceKey: "my_cache"
26
+ * })
27
+ * cache.set("key1", "value1") // Saved to memory and localStorage
28
+ * ```
29
+ */
30
+ class PersistentCache {
31
+ constructor(config, maxStorageBytes) {
32
+ this.storageAvailable = true;
33
+ this.lruCache = new LRUCache_1.LRUCache(config);
34
+ this.persistenceKey = config.persistenceKey || "mvx_cache";
35
+ this.maxStorageBytes = maxStorageBytes !== null && maxStorageBytes !== void 0 ? maxStorageBytes : cacheConfig_1.DEFAULT_MAX_STORAGE_BYTES;
36
+ this.ttlMs = config.ttlMs;
37
+ this.hydrate();
38
+ }
39
+ get(key) {
40
+ return this.lruCache.get(key);
41
+ }
42
+ set(key, value) {
43
+ this.lruCache.set(key, value);
44
+ this.persist();
45
+ }
46
+ has(key) {
47
+ return this.lruCache.has(key);
48
+ }
49
+ delete(key) {
50
+ const result = this.lruCache.delete(key);
51
+ if (result) {
52
+ this.persist();
53
+ }
54
+ return result;
55
+ }
56
+ clear() {
57
+ this.lruCache.clear();
58
+ this.removeFromStorage();
59
+ }
60
+ keys() {
61
+ return this.lruCache.keys();
62
+ }
63
+ getStats() {
64
+ return this.lruCache.getStats();
65
+ }
66
+ /**
67
+ * Loads cache data from localStorage on initialization
68
+ */
69
+ hydrate() {
70
+ if (!this.isStorageAvailable()) {
71
+ this.storageAvailable = false;
72
+ return;
73
+ }
74
+ try {
75
+ const stored = localStorage.getItem(this.persistenceKey);
76
+ if (!stored)
77
+ return;
78
+ const data = JSON.parse(stored);
79
+ if (!data.entries || !Array.isArray(data.entries)) {
80
+ return;
81
+ }
82
+ const now = Date.now();
83
+ for (const entry of data.entries) {
84
+ // Skip expired entries (if TTL is configured)
85
+ if (this.ttlMs > 0 && now - entry.timestamp > this.ttlMs) {
86
+ continue;
87
+ }
88
+ // Restore to LRU cache
89
+ this.lruCache.set(entry.key, entry.value);
90
+ }
91
+ }
92
+ catch (_a) {
93
+ // Corrupted data or storage error - start with empty cache
94
+ this.storageAvailable = this.isStorageAvailable();
95
+ }
96
+ }
97
+ /**
98
+ * Saves current cache state to localStorage
99
+ */
100
+ persist() {
101
+ if (!this.storageAvailable)
102
+ return;
103
+ try {
104
+ const entries = [];
105
+ const keys = this.lruCache.keys();
106
+ for (const key of keys) {
107
+ const value = this.lruCache.get(key);
108
+ if (value !== undefined) {
109
+ entries.push({
110
+ key,
111
+ value,
112
+ timestamp: Date.now(),
113
+ accessTime: Date.now(),
114
+ });
115
+ }
116
+ }
117
+ const data = { entries };
118
+ const serialized = JSON.stringify(data);
119
+ // Check storage quota
120
+ if (serialized.length > this.maxStorageBytes) {
121
+ // Skip persistence if too large
122
+ return;
123
+ }
124
+ localStorage.setItem(this.persistenceKey, serialized);
125
+ }
126
+ catch (_a) {
127
+ // Storage quota exceeded or other error
128
+ this.storageAvailable = false;
129
+ }
130
+ }
131
+ /**
132
+ * Removes cache data from localStorage
133
+ */
134
+ removeFromStorage() {
135
+ if (!this.storageAvailable)
136
+ return;
137
+ try {
138
+ localStorage.removeItem(this.persistenceKey);
139
+ }
140
+ catch (_a) {
141
+ // Ignore errors
142
+ }
143
+ }
144
+ /**
145
+ * Checks if localStorage is available
146
+ */
147
+ isStorageAvailable() {
148
+ try {
149
+ const testKey = "__storage_test__";
150
+ localStorage.setItem(testKey, testKey);
151
+ localStorage.removeItem(testKey);
152
+ return true;
153
+ }
154
+ catch (_a) {
155
+ return false;
156
+ }
157
+ }
158
+ }
159
+ exports.PersistentCache = PersistentCache;
160
+ //# sourceMappingURL=PersistentCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersistentCache.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/PersistentCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Cache configuration types and defaults
4
+ * Defines the configuration options for the caching system
5
+ * @module cacheConfig
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getCacheConfig = exports.DEFAULT_CACHE_CONFIGS = exports.DEFAULT_MAX_STORAGE_BYTES = void 0;
9
+ /**
10
+ * Default maximum storage size: 5MB
11
+ */
12
+ exports.DEFAULT_MAX_STORAGE_BYTES = 5 * 1024 * 1024;
13
+ /**
14
+ * Default cache configurations per type
15
+ * These values balance memory usage with performance
16
+ */
17
+ exports.DEFAULT_CACHE_CONFIGS = {
18
+ places: {
19
+ maxItems: 500,
20
+ ttlMs: 30 * 60 * 1000,
21
+ persistenceKey: "mvx_places",
22
+ },
23
+ routes: {
24
+ maxItems: 100,
25
+ ttlMs: 5 * 60 * 1000,
26
+ persistenceKey: "mvx_routes",
27
+ },
28
+ accessibleRoutes: {
29
+ maxItems: 100,
30
+ ttlMs: 5 * 60 * 1000,
31
+ persistenceKey: "mvx_accessible_routes",
32
+ },
33
+ configurations: {
34
+ maxItems: 10,
35
+ ttlMs: 60 * 60 * 1000,
36
+ persistenceKey: "mvx_configurations",
37
+ },
38
+ categories: {
39
+ maxItems: 20,
40
+ ttlMs: 60 * 60 * 1000,
41
+ persistenceKey: "mvx_categories",
42
+ },
43
+ vehicles: {
44
+ maxItems: 50,
45
+ ttlMs: 60 * 1000,
46
+ persistenceKey: "mvx_vehicles",
47
+ },
48
+ stops: {
49
+ maxItems: 100,
50
+ ttlMs: 60 * 1000,
51
+ persistenceKey: "mvx_stops",
52
+ },
53
+ subPlaces: {
54
+ maxItems: 200,
55
+ ttlMs: 15 * 60 * 1000,
56
+ persistenceKey: "mvx_subplaces",
57
+ },
58
+ };
59
+ /**
60
+ * Merges user config with defaults for a specific cache type
61
+ * @param cacheType - The type of cache
62
+ * @param userConfig - Optional user-provided configuration
63
+ * @returns Complete cache configuration
64
+ */
65
+ function getCacheConfig(cacheType, userConfig) {
66
+ const defaultConfig = exports.DEFAULT_CACHE_CONFIGS[cacheType];
67
+ return Object.assign(Object.assign({}, defaultConfig), userConfig);
68
+ }
69
+ exports.getCacheConfig = getCacheConfig;
70
+ //# sourceMappingURL=cacheConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheConfig.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/cacheConfig.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0CH;;GAEG;AACU,QAAA,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAExD;;;GAGG;AACU,QAAA,qBAAqB,GAAmC;IACnE,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,cAAc,EAAE,YAAY;KAC7B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACpB,cAAc,EAAE,YAAY;KAC7B;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACpB,cAAc,EAAE,uBAAuB;KACxC;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,cAAc,EAAE,oBAAoB;KACrC;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,cAAc,EAAE,gBAAgB;KACjC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE,GAAG,IAAI;QAChB,cAAc,EAAE,cAAc;KAC/B;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,EAAE,GAAG,IAAI;QAChB,cAAc,EAAE,WAAW;KAC5B;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,cAAc,EAAE,eAAe;KAChC;CACF,CAAA;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,SAAoB,EACpB,UAAiC;IAEjC,MAAM,aAAa,GAAG,6BAAqB,CAAC,SAAS,CAAC,CAAA;IACtD,uCACK,aAAa,GACb,UAAU,EACd;AACH,CAAC;AATD,wCASC"}