googlemaps-kit 0.3.1 → 0.5.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 (622) hide show
  1. package/README.md +231 -26
  2. package/dist/advanced/http.d.ts +4 -4
  3. package/dist/advanced/http.d.ts.map +1 -1
  4. package/dist/advanced/http.js +4 -4
  5. package/dist/advanced/http.js.map +1 -1
  6. package/dist/advanced/parsers.d.ts +9 -4
  7. package/dist/advanced/parsers.d.ts.map +1 -1
  8. package/dist/advanced/parsers.js +6 -3
  9. package/dist/advanced/parsers.js.map +1 -1
  10. package/dist/advanced/rpc.d.ts +12 -12
  11. package/dist/advanced/rpc.d.ts.map +1 -1
  12. package/dist/advanced/rpc.js +10 -10
  13. package/dist/advanced/rpc.js.map +1 -1
  14. package/dist/advanced/services.d.ts +18 -7
  15. package/dist/advanced/services.d.ts.map +1 -1
  16. package/dist/advanced/services.js +18 -7
  17. package/dist/advanced/services.js.map +1 -1
  18. package/dist/advanced/utils.d.ts +3 -3
  19. package/dist/advanced/utils.d.ts.map +1 -1
  20. package/dist/advanced/utils.js +3 -3
  21. package/dist/advanced/utils.js.map +1 -1
  22. package/dist/advanced.d.ts +46 -9
  23. package/dist/advanced.d.ts.map +1 -1
  24. package/dist/advanced.js +13 -6
  25. package/dist/advanced.js.map +1 -1
  26. package/dist/auth/auth-status.js +2 -2
  27. package/dist/auth/auth-status.js.map +1 -1
  28. package/dist/auth/maps-tokens.js +1 -1
  29. package/dist/auth/session.d.ts.map +1 -1
  30. package/dist/auth/session.js +17 -2
  31. package/dist/auth/session.js.map +1 -1
  32. package/dist/cli/args.d.ts +21 -0
  33. package/dist/cli/args.d.ts.map +1 -0
  34. package/dist/cli/args.js +97 -0
  35. package/dist/cli/args.js.map +1 -0
  36. package/dist/cli/format.d.ts.map +1 -1
  37. package/dist/cli/format.js +18 -27
  38. package/dist/cli/format.js.map +1 -1
  39. package/dist/cli/output.d.ts +19 -0
  40. package/dist/cli/output.d.ts.map +1 -0
  41. package/dist/cli/output.js +82 -0
  42. package/dist/cli/output.js.map +1 -0
  43. package/dist/cli/run.d.ts +131 -0
  44. package/dist/cli/run.d.ts.map +1 -0
  45. package/dist/cli/run.js +384 -0
  46. package/dist/cli/run.js.map +1 -0
  47. package/dist/cli/tui/app.d.ts +48 -0
  48. package/dist/cli/tui/app.d.ts.map +1 -0
  49. package/dist/cli/tui/app.js +461 -0
  50. package/dist/cli/tui/app.js.map +1 -0
  51. package/dist/cli/tui/styles.d.ts +11 -0
  52. package/dist/cli/tui/styles.d.ts.map +1 -0
  53. package/dist/cli/tui/styles.js +17 -0
  54. package/dist/cli/tui/styles.js.map +1 -0
  55. package/dist/cli.d.ts +1 -10
  56. package/dist/cli.d.ts.map +1 -1
  57. package/dist/cli.js +196 -206
  58. package/dist/cli.js.map +1 -1
  59. package/dist/client/gmaps-client.d.ts +8 -3
  60. package/dist/client/gmaps-client.d.ts.map +1 -1
  61. package/dist/client/gmaps-client.js +43 -5
  62. package/dist/client/gmaps-client.js.map +1 -1
  63. package/dist/client/http-client.d.ts.map +1 -1
  64. package/dist/client/http-client.js +11 -9
  65. package/dist/client/http-client.js.map +1 -1
  66. package/dist/client/intent.d.ts +1 -1
  67. package/dist/client/intent.d.ts.map +1 -1
  68. package/dist/client/intent.js +22 -5
  69. package/dist/client/intent.js.map +1 -1
  70. package/dist/client/maps-tools.d.ts +13 -1
  71. package/dist/client/maps-tools.d.ts.map +1 -1
  72. package/dist/client/maps-tools.js +44 -0
  73. package/dist/client/maps-tools.js.map +1 -1
  74. package/dist/client/namespaces.d.ts +84 -10
  75. package/dist/client/namespaces.d.ts.map +1 -1
  76. package/dist/client/namespaces.js +119 -11
  77. package/dist/client/namespaces.js.map +1 -1
  78. package/dist/client/place-enrichment.js +1 -1
  79. package/dist/client/place-enrichment.js.map +1 -1
  80. package/dist/index.d.ts +46 -16
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +5 -3
  83. package/dist/index.js.map +1 -1
  84. package/dist/known-surfaces.d.ts +134 -2
  85. package/dist/known-surfaces.d.ts.map +1 -1
  86. package/dist/known-surfaces.js +134 -2
  87. package/dist/known-surfaces.js.map +1 -1
  88. package/dist/parsers/batch-url.d.ts +10 -1
  89. package/dist/parsers/batch-url.d.ts.map +1 -1
  90. package/dist/parsers/batch-url.js +30 -2
  91. package/dist/parsers/batch-url.js.map +1 -1
  92. package/dist/parsers/boq-reviews.d.ts +8 -1
  93. package/dist/parsers/boq-reviews.d.ts.map +1 -1
  94. package/dist/parsers/boq-reviews.js +50 -8
  95. package/dist/parsers/boq-reviews.js.map +1 -1
  96. package/dist/parsers/categories.d.ts.map +1 -1
  97. package/dist/parsers/categories.js +13 -10
  98. package/dist/parsers/categories.js.map +1 -1
  99. package/dist/parsers/directions.d.ts +18 -2
  100. package/dist/parsers/directions.d.ts.map +1 -1
  101. package/dist/parsers/directions.js +232 -18
  102. package/dist/parsers/directions.js.map +1 -1
  103. package/dist/parsers/geocode.d.ts +20 -2
  104. package/dist/parsers/geocode.d.ts.map +1 -1
  105. package/dist/parsers/geocode.js +110 -6
  106. package/dist/parsers/geocode.js.map +1 -1
  107. package/dist/parsers/knowledge.js +1 -1
  108. package/dist/parsers/knowledge.js.map +1 -1
  109. package/dist/parsers/lists.d.ts.map +1 -1
  110. package/dist/parsers/lists.js +29 -12
  111. package/dist/parsers/lists.js.map +1 -1
  112. package/dist/parsers/local-posts.d.ts.map +1 -1
  113. package/dist/parsers/local-posts.js +97 -12
  114. package/dist/parsers/local-posts.js.map +1 -1
  115. package/dist/parsers/mobility.d.ts +42 -0
  116. package/dist/parsers/mobility.d.ts.map +1 -0
  117. package/dist/parsers/mobility.js +130 -0
  118. package/dist/parsers/mobility.js.map +1 -0
  119. package/dist/parsers/panorama.d.ts +0 -1
  120. package/dist/parsers/panorama.d.ts.map +1 -1
  121. package/dist/parsers/panorama.js +117 -14
  122. package/dist/parsers/panorama.js.map +1 -1
  123. package/dist/parsers/photos.d.ts.map +1 -1
  124. package/dist/parsers/photos.js +15 -8
  125. package/dist/parsers/photos.js.map +1 -1
  126. package/dist/parsers/place-attributes.d.ts +12 -3
  127. package/dist/parsers/place-attributes.d.ts.map +1 -1
  128. package/dist/parsers/place-attributes.js +48 -2
  129. package/dist/parsers/place-attributes.js.map +1 -1
  130. package/dist/parsers/place-extended.d.ts +163 -0
  131. package/dist/parsers/place-extended.d.ts.map +1 -0
  132. package/dist/parsers/place-extended.js +741 -0
  133. package/dist/parsers/place-extended.js.map +1 -0
  134. package/dist/parsers/place.d.ts +15 -1
  135. package/dist/parsers/place.d.ts.map +1 -1
  136. package/dist/parsers/place.js +16 -5
  137. package/dist/parsers/place.js.map +1 -1
  138. package/dist/parsers/popular-times.d.ts +35 -0
  139. package/dist/parsers/popular-times.d.ts.map +1 -0
  140. package/dist/parsers/popular-times.js +149 -0
  141. package/dist/parsers/popular-times.js.map +1 -0
  142. package/dist/parsers/reveal.d.ts +1 -1
  143. package/dist/parsers/reveal.d.ts.map +1 -1
  144. package/dist/parsers/reveal.js +3 -2
  145. package/dist/parsers/reveal.js.map +1 -1
  146. package/dist/parsers/reviews.d.ts +17 -2
  147. package/dist/parsers/reviews.d.ts.map +1 -1
  148. package/dist/parsers/reviews.js +73 -1
  149. package/dist/parsers/reviews.js.map +1 -1
  150. package/dist/parsers/search.d.ts +17 -2
  151. package/dist/parsers/search.d.ts.map +1 -1
  152. package/dist/parsers/search.js +125 -7
  153. package/dist/parsers/search.js.map +1 -1
  154. package/dist/parsers/shared.d.ts +4 -0
  155. package/dist/parsers/shared.d.ts.map +1 -1
  156. package/dist/parsers/shared.js +10 -2
  157. package/dist/parsers/shared.js.map +1 -1
  158. package/dist/parsers/suggest.d.ts.map +1 -1
  159. package/dist/parsers/suggest.js +45 -6
  160. package/dist/parsers/suggest.js.map +1 -1
  161. package/dist/parsers/tiles.d.ts +13 -0
  162. package/dist/parsers/tiles.d.ts.map +1 -1
  163. package/dist/parsers/tiles.js +64 -0
  164. package/dist/parsers/tiles.js.map +1 -1
  165. package/dist/parsers/traffic.d.ts +9 -1
  166. package/dist/parsers/traffic.d.ts.map +1 -1
  167. package/dist/parsers/traffic.js +129 -2
  168. package/dist/parsers/traffic.js.map +1 -1
  169. package/dist/parsers/transit.d.ts +4 -2
  170. package/dist/parsers/transit.d.ts.map +1 -1
  171. package/dist/parsers/transit.js +385 -3
  172. package/dist/parsers/transit.js.map +1 -1
  173. package/dist/parsers/viewport.d.ts +20 -0
  174. package/dist/parsers/viewport.d.ts.map +1 -0
  175. package/dist/parsers/viewport.js +139 -0
  176. package/dist/parsers/viewport.js.map +1 -0
  177. package/dist/rpc/batch-execute.js +3 -3
  178. package/dist/rpc/batch-execute.js.map +1 -1
  179. package/dist/rpc/batch-request-builders.d.ts +12 -14
  180. package/dist/rpc/batch-request-builders.d.ts.map +1 -1
  181. package/dist/rpc/batch-request-builders.js +49 -17
  182. package/dist/rpc/batch-request-builders.js.map +1 -1
  183. package/dist/rpc/batch-rpc.js +1 -1
  184. package/dist/rpc/batch-services.d.ts +2 -0
  185. package/dist/rpc/batch-services.d.ts.map +1 -1
  186. package/dist/rpc/batch-services.js +4 -0
  187. package/dist/rpc/batch-services.js.map +1 -1
  188. package/dist/rpc/{descriptor-registry.d.ts → descriptors.d.ts} +29 -4
  189. package/dist/rpc/descriptors.d.ts.map +1 -0
  190. package/dist/rpc/{app-options.js → descriptors.js} +89 -5
  191. package/dist/rpc/descriptors.js.map +1 -0
  192. package/dist/rpc/earth-rocktree.d.ts +174 -0
  193. package/dist/rpc/earth-rocktree.d.ts.map +1 -0
  194. package/dist/rpc/earth-rocktree.js +468 -0
  195. package/dist/rpc/earth-rocktree.js.map +1 -0
  196. package/dist/rpc/feature-pb.d.ts +86 -0
  197. package/dist/rpc/feature-pb.d.ts.map +1 -0
  198. package/dist/rpc/feature-pb.js +112 -0
  199. package/dist/rpc/feature-pb.js.map +1 -0
  200. package/dist/rpc/feature-rpc.d.ts +15 -0
  201. package/dist/rpc/feature-rpc.d.ts.map +1 -1
  202. package/dist/rpc/feature-rpc.js +44 -0
  203. package/dist/rpc/feature-rpc.js.map +1 -1
  204. package/dist/rpc/maps-runtime.js +1 -1
  205. package/dist/rpc/panorama-pb.d.ts +3 -0
  206. package/dist/rpc/panorama-pb.d.ts.map +1 -1
  207. package/dist/rpc/panorama-pb.js +35 -3
  208. package/dist/rpc/panorama-pb.js.map +1 -1
  209. package/dist/rpc/pb-builders.d.ts +21 -1
  210. package/dist/rpc/pb-builders.d.ts.map +1 -1
  211. package/dist/rpc/pb-builders.js +62 -4
  212. package/dist/rpc/pb-builders.js.map +1 -1
  213. package/dist/rpc/photos-pb.d.ts +28 -1
  214. package/dist/rpc/photos-pb.d.ts.map +1 -1
  215. package/dist/rpc/photos-pb.js +96 -0
  216. package/dist/rpc/photos-pb.js.map +1 -1
  217. package/dist/rpc/rpc-methods.d.ts +0 -2
  218. package/dist/rpc/rpc-methods.d.ts.map +1 -1
  219. package/dist/rpc/rpc-methods.js +0 -38
  220. package/dist/rpc/rpc-methods.js.map +1 -1
  221. package/dist/rpc/search-filters.d.ts +0 -12
  222. package/dist/rpc/search-filters.d.ts.map +1 -1
  223. package/dist/rpc/search-filters.js +1 -11
  224. package/dist/rpc/search-filters.js.map +1 -1
  225. package/dist/rpc/tile-builders.d.ts +136 -0
  226. package/dist/rpc/tile-builders.d.ts.map +1 -0
  227. package/dist/rpc/tile-builders.js +172 -0
  228. package/dist/rpc/tile-builders.js.map +1 -0
  229. package/dist/rpc/xsrf-bootstrap.d.ts +0 -2
  230. package/dist/rpc/xsrf-bootstrap.d.ts.map +1 -1
  231. package/dist/rpc/xsrf-bootstrap.js +2 -2
  232. package/dist/rpc/xsrf-bootstrap.js.map +1 -1
  233. package/dist/services/ask-maps.d.ts +45 -5
  234. package/dist/services/ask-maps.d.ts.map +1 -1
  235. package/dist/services/ask-maps.js +148 -21
  236. package/dist/services/ask-maps.js.map +1 -1
  237. package/dist/services/directions.d.ts +17 -1
  238. package/dist/services/directions.d.ts.map +1 -1
  239. package/dist/services/directions.js +32 -0
  240. package/dist/services/directions.js.map +1 -1
  241. package/dist/services/distance-matrix.d.ts +1 -1
  242. package/dist/services/distance-matrix.d.ts.map +1 -1
  243. package/dist/services/distance-matrix.js +1 -1
  244. package/dist/services/distance-matrix.js.map +1 -1
  245. package/dist/services/elevation.d.ts +1 -1
  246. package/dist/services/elevation.d.ts.map +1 -1
  247. package/dist/services/elevation.js +3 -2
  248. package/dist/services/elevation.js.map +1 -1
  249. package/dist/services/geocode.d.ts +16 -0
  250. package/dist/services/geocode.d.ts.map +1 -1
  251. package/dist/services/geocode.js +90 -0
  252. package/dist/services/geocode.js.map +1 -1
  253. package/dist/services/lists.d.ts +7 -1
  254. package/dist/services/lists.d.ts.map +1 -1
  255. package/dist/services/lists.js +45 -1
  256. package/dist/services/lists.js.map +1 -1
  257. package/dist/services/map-3d.d.ts +66 -0
  258. package/dist/services/map-3d.d.ts.map +1 -0
  259. package/dist/services/map-3d.js +658 -0
  260. package/dist/services/map-3d.js.map +1 -0
  261. package/dist/services/map-layers.d.ts +33 -0
  262. package/dist/services/map-layers.d.ts.map +1 -0
  263. package/dist/services/map-layers.js +207 -0
  264. package/dist/services/map-layers.js.map +1 -0
  265. package/dist/services/meta.d.ts +71 -0
  266. package/dist/services/meta.d.ts.map +1 -0
  267. package/dist/services/meta.js +132 -0
  268. package/dist/services/meta.js.map +1 -0
  269. package/dist/services/mobility.d.ts +79 -0
  270. package/dist/services/mobility.d.ts.map +1 -0
  271. package/dist/services/mobility.js +296 -0
  272. package/dist/services/mobility.js.map +1 -0
  273. package/dist/services/panorama.d.ts +12 -1
  274. package/dist/services/panorama.d.ts.map +1 -1
  275. package/dist/services/panorama.js +63 -3
  276. package/dist/services/panorama.js.map +1 -1
  277. package/dist/services/photos.d.ts.map +1 -1
  278. package/dist/services/photos.js +3 -4
  279. package/dist/services/photos.js.map +1 -1
  280. package/dist/services/place-attributes.d.ts +31 -0
  281. package/dist/services/place-attributes.d.ts.map +1 -0
  282. package/dist/services/place-attributes.js +48 -0
  283. package/dist/services/place-attributes.js.map +1 -0
  284. package/dist/services/places.d.ts +13 -0
  285. package/dist/services/places.d.ts.map +1 -1
  286. package/dist/services/places.js +6 -4
  287. package/dist/services/places.js.map +1 -1
  288. package/dist/services/reviews.d.ts +11 -1
  289. package/dist/services/reviews.d.ts.map +1 -1
  290. package/dist/services/reviews.js +36 -12
  291. package/dist/services/reviews.js.map +1 -1
  292. package/dist/services/search-along-route.d.ts +33 -0
  293. package/dist/services/search-along-route.d.ts.map +1 -0
  294. package/dist/services/search-along-route.js +200 -0
  295. package/dist/services/search-along-route.js.map +1 -0
  296. package/dist/services/search.d.ts +23 -1
  297. package/dist/services/search.d.ts.map +1 -1
  298. package/dist/services/search.js +147 -3
  299. package/dist/services/search.js.map +1 -1
  300. package/dist/services/static-map.js +1 -1
  301. package/dist/services/static-map.js.map +1 -1
  302. package/dist/services/tiles.d.ts +39 -2
  303. package/dist/services/tiles.d.ts.map +1 -1
  304. package/dist/services/tiles.js +172 -13
  305. package/dist/services/tiles.js.map +1 -1
  306. package/dist/services/traffic.d.ts +12 -1
  307. package/dist/services/traffic.d.ts.map +1 -1
  308. package/dist/services/traffic.js +25 -2
  309. package/dist/services/traffic.js.map +1 -1
  310. package/dist/services/transit.d.ts +20 -3
  311. package/dist/services/transit.d.ts.map +1 -1
  312. package/dist/services/transit.js +69 -1
  313. package/dist/services/transit.js.map +1 -1
  314. package/dist/services/viewport.d.ts +76 -0
  315. package/dist/services/viewport.d.ts.map +1 -0
  316. package/dist/services/viewport.js +180 -0
  317. package/dist/services/viewport.js.map +1 -0
  318. package/dist/services/waypoint-optimizer.d.ts +31 -0
  319. package/dist/services/waypoint-optimizer.d.ts.map +1 -0
  320. package/dist/services/waypoint-optimizer.js +235 -0
  321. package/dist/services/waypoint-optimizer.js.map +1 -0
  322. package/dist/types/batch-url.d.ts +31 -0
  323. package/dist/types/batch-url.d.ts.map +1 -1
  324. package/dist/types/categories.d.ts +20 -4
  325. package/dist/types/categories.d.ts.map +1 -1
  326. package/dist/types/common.d.ts +162 -22
  327. package/dist/types/common.d.ts.map +1 -1
  328. package/dist/types/common.js +1 -1
  329. package/dist/types/common.js.map +1 -1
  330. package/dist/types/directions.d.ts +217 -3
  331. package/dist/types/directions.d.ts.map +1 -1
  332. package/dist/types/dx.d.ts +48 -3
  333. package/dist/types/dx.d.ts.map +1 -1
  334. package/dist/types/geocode.d.ts +61 -3
  335. package/dist/types/geocode.d.ts.map +1 -1
  336. package/dist/types/grid-search.d.ts +66 -0
  337. package/dist/types/grid-search.d.ts.map +1 -0
  338. package/dist/types/grid-search.js +2 -0
  339. package/dist/types/grid-search.js.map +1 -0
  340. package/dist/types/hooks.d.ts +3 -3
  341. package/dist/types/hooks.d.ts.map +1 -1
  342. package/dist/types/links.d.ts +3 -6
  343. package/dist/types/links.d.ts.map +1 -1
  344. package/dist/types/lists.d.ts +68 -3
  345. package/dist/types/lists.d.ts.map +1 -1
  346. package/dist/types/map-3d.d.ts +126 -0
  347. package/dist/types/map-3d.d.ts.map +1 -0
  348. package/dist/types/map-3d.js +2 -0
  349. package/dist/types/map-3d.js.map +1 -0
  350. package/dist/types/map-earth.d.ts +34 -0
  351. package/dist/types/map-earth.d.ts.map +1 -0
  352. package/dist/types/map-earth.js +2 -0
  353. package/dist/types/map-earth.js.map +1 -0
  354. package/dist/types/map-layers.d.ts +63 -0
  355. package/dist/types/map-layers.d.ts.map +1 -0
  356. package/dist/types/map-layers.js +2 -0
  357. package/dist/types/map-layers.js.map +1 -0
  358. package/dist/types/mobility.d.ts +121 -0
  359. package/dist/types/mobility.d.ts.map +1 -0
  360. package/dist/types/mobility.js +3 -0
  361. package/dist/types/mobility.js.map +1 -0
  362. package/dist/types/panorama.d.ts +104 -0
  363. package/dist/types/panorama.d.ts.map +1 -1
  364. package/dist/types/photos.d.ts +12 -0
  365. package/dist/types/photos.d.ts.map +1 -1
  366. package/dist/types/photos.js +2 -1
  367. package/dist/types/photos.js.map +1 -1
  368. package/dist/types/place-attributes.d.ts +15 -0
  369. package/dist/types/place-attributes.d.ts.map +1 -0
  370. package/dist/types/place-attributes.js +2 -0
  371. package/dist/types/place-attributes.js.map +1 -0
  372. package/dist/types/place-extended.d.ts +406 -0
  373. package/dist/types/place-extended.d.ts.map +1 -0
  374. package/dist/types/place-extended.js +18 -0
  375. package/dist/types/place-extended.js.map +1 -0
  376. package/dist/types/protobuf.d.ts +1 -1
  377. package/dist/types/protobuf.js +1 -1
  378. package/dist/types/reviews.d.ts +28 -0
  379. package/dist/types/reviews.d.ts.map +1 -1
  380. package/dist/types/reviews.js.map +1 -1
  381. package/dist/types/route-optimization.d.ts +56 -0
  382. package/dist/types/route-optimization.d.ts.map +1 -0
  383. package/dist/types/route-optimization.js +2 -0
  384. package/dist/types/route-optimization.js.map +1 -0
  385. package/dist/types/search-along-route.d.ts +49 -0
  386. package/dist/types/search-along-route.d.ts.map +1 -0
  387. package/dist/types/search-along-route.js +2 -0
  388. package/dist/types/search-along-route.js.map +1 -0
  389. package/dist/types/search-filters.d.ts +1 -1
  390. package/dist/types/search-filters.js +1 -1
  391. package/dist/types/suggest.d.ts +25 -2
  392. package/dist/types/suggest.d.ts.map +1 -1
  393. package/dist/types/tiles.d.ts +40 -0
  394. package/dist/types/tiles.d.ts.map +1 -1
  395. package/dist/types/traffic.d.ts +58 -1
  396. package/dist/types/traffic.d.ts.map +1 -1
  397. package/dist/types/transit.d.ts +160 -1
  398. package/dist/types/transit.d.ts.map +1 -1
  399. package/dist/types/transit.js +0 -1
  400. package/dist/types/transit.js.map +1 -1
  401. package/dist/types/viewport.d.ts +159 -0
  402. package/dist/types/viewport.d.ts.map +1 -0
  403. package/dist/types/viewport.js +3 -0
  404. package/dist/types/viewport.js.map +1 -0
  405. package/dist/utils/async.d.ts +44 -0
  406. package/dist/utils/async.d.ts.map +1 -0
  407. package/dist/utils/async.js +132 -0
  408. package/dist/utils/async.js.map +1 -0
  409. package/dist/utils/encoded-polyline.d.ts +43 -0
  410. package/dist/utils/encoded-polyline.d.ts.map +1 -1
  411. package/dist/utils/encoded-polyline.js +71 -0
  412. package/dist/utils/encoded-polyline.js.map +1 -1
  413. package/dist/utils/env.d.ts +6 -0
  414. package/dist/utils/env.d.ts.map +1 -0
  415. package/dist/utils/{load-env.js → env.js} +32 -7
  416. package/dist/utils/env.js.map +1 -0
  417. package/dist/utils/geo.d.ts +12 -0
  418. package/dist/utils/geo.d.ts.map +1 -1
  419. package/dist/utils/geo.js +20 -0
  420. package/dist/utils/geo.js.map +1 -1
  421. package/dist/utils/hooks.d.ts +2 -3
  422. package/dist/utils/hooks.d.ts.map +1 -1
  423. package/dist/utils/hooks.js +1 -1
  424. package/dist/utils/hooks.js.map +1 -1
  425. package/dist/utils/ids.d.ts +1 -0
  426. package/dist/utils/ids.d.ts.map +1 -1
  427. package/dist/utils/ids.js +10 -0
  428. package/dist/utils/ids.js.map +1 -1
  429. package/dist/utils/net.d.ts +46 -0
  430. package/dist/utils/net.d.ts.map +1 -0
  431. package/dist/utils/net.js +150 -0
  432. package/dist/utils/net.js.map +1 -0
  433. package/dist/utils/payload.d.ts +22 -0
  434. package/dist/utils/payload.d.ts.map +1 -0
  435. package/dist/utils/{chunked-decoder.js → payload.js} +80 -2
  436. package/dist/utils/payload.js.map +1 -0
  437. package/dist/utils/place-ref.d.ts +27 -0
  438. package/dist/utils/place-ref.d.ts.map +1 -1
  439. package/dist/utils/place-ref.js +45 -1
  440. package/dist/utils/place-ref.js.map +1 -1
  441. package/package.json +16 -7
  442. package/dist/client/product-namespaces.d.ts +0 -30
  443. package/dist/client/product-namespaces.d.ts.map +0 -1
  444. package/dist/client/product-namespaces.js +0 -47
  445. package/dist/client/product-namespaces.js.map +0 -1
  446. package/dist/parsers/elevation-directions.d.ts +0 -18
  447. package/dist/parsers/elevation-directions.d.ts.map +0 -1
  448. package/dist/parsers/elevation-directions.js +0 -102
  449. package/dist/parsers/elevation-directions.js.map +0 -1
  450. package/dist/parsers/passiveassist.d.ts +0 -10
  451. package/dist/parsers/passiveassist.d.ts.map +0 -1
  452. package/dist/parsers/passiveassist.js +0 -61
  453. package/dist/parsers/passiveassist.js.map +0 -1
  454. package/dist/parsers/review-aggregates.d.ts +0 -7
  455. package/dist/parsers/review-aggregates.d.ts.map +0 -1
  456. package/dist/parsers/review-aggregates.js +0 -18
  457. package/dist/parsers/review-aggregates.js.map +0 -1
  458. package/dist/parsers/review-client-filters.d.ts +0 -8
  459. package/dist/parsers/review-client-filters.d.ts.map +0 -1
  460. package/dist/parsers/review-client-filters.js +0 -28
  461. package/dist/parsers/review-client-filters.js.map +0 -1
  462. package/dist/parsers/search-client-filters.d.ts +0 -7
  463. package/dist/parsers/search-client-filters.d.ts.map +0 -1
  464. package/dist/parsers/search-client-filters.js +0 -44
  465. package/dist/parsers/search-client-filters.js.map +0 -1
  466. package/dist/parsers/search-pagination.d.ts +0 -12
  467. package/dist/parsers/search-pagination.d.ts.map +0 -1
  468. package/dist/parsers/search-pagination.js +0 -34
  469. package/dist/parsers/search-pagination.js.map +0 -1
  470. package/dist/parsers/timezone-geocode.d.ts +0 -20
  471. package/dist/parsers/timezone-geocode.d.ts.map +0 -1
  472. package/dist/parsers/timezone-geocode.js +0 -96
  473. package/dist/parsers/timezone-geocode.js.map +0 -1
  474. package/dist/parsers/ugc-aggregates.d.ts +0 -9
  475. package/dist/parsers/ugc-aggregates.d.ts.map +0 -1
  476. package/dist/parsers/ugc-aggregates.js +0 -23
  477. package/dist/parsers/ugc-aggregates.js.map +0 -1
  478. package/dist/rpc/app-options.d.ts +0 -25
  479. package/dist/rpc/app-options.d.ts.map +0 -1
  480. package/dist/rpc/app-options.js.map +0 -1
  481. package/dist/rpc/batchexecute-args.d.ts +0 -30
  482. package/dist/rpc/batchexecute-args.d.ts.map +0 -1
  483. package/dist/rpc/batchexecute-args.js +0 -35
  484. package/dist/rpc/batchexecute-args.js.map +0 -1
  485. package/dist/rpc/boq-reviews.d.ts +0 -16
  486. package/dist/rpc/boq-reviews.d.ts.map +0 -1
  487. package/dist/rpc/boq-reviews.js +0 -45
  488. package/dist/rpc/boq-reviews.js.map +0 -1
  489. package/dist/rpc/descriptor-registry.d.ts.map +0 -1
  490. package/dist/rpc/descriptor-registry.js +0 -47
  491. package/dist/rpc/descriptor-registry.js.map +0 -1
  492. package/dist/rpc/lists-pb.d.ts +0 -20
  493. package/dist/rpc/lists-pb.d.ts.map +0 -1
  494. package/dist/rpc/lists-pb.js +0 -20
  495. package/dist/rpc/lists-pb.js.map +0 -1
  496. package/dist/rpc/nxa.d.ts +0 -13
  497. package/dist/rpc/nxa.d.ts.map +0 -1
  498. package/dist/rpc/nxa.js +0 -44
  499. package/dist/rpc/nxa.js.map +0 -1
  500. package/dist/rpc/passiveassist-pb.d.ts +0 -21
  501. package/dist/rpc/passiveassist-pb.d.ts.map +0 -1
  502. package/dist/rpc/passiveassist-pb.js +0 -24
  503. package/dist/rpc/passiveassist-pb.js.map +0 -1
  504. package/dist/rpc/photo-category-tokens.d.ts +0 -29
  505. package/dist/rpc/photo-category-tokens.d.ts.map +0 -1
  506. package/dist/rpc/photo-category-tokens.js +0 -97
  507. package/dist/rpc/photo-category-tokens.js.map +0 -1
  508. package/dist/rpc/reveal-pb.d.ts +0 -26
  509. package/dist/rpc/reveal-pb.d.ts.map +0 -1
  510. package/dist/rpc/reveal-pb.js +0 -32
  511. package/dist/rpc/reveal-pb.js.map +0 -1
  512. package/dist/rpc/suggest-pb.d.ts +0 -34
  513. package/dist/rpc/suggest-pb.d.ts.map +0 -1
  514. package/dist/rpc/suggest-pb.js +0 -42
  515. package/dist/rpc/suggest-pb.js.map +0 -1
  516. package/dist/rpc/tiles-pb.d.ts +0 -45
  517. package/dist/rpc/tiles-pb.d.ts.map +0 -1
  518. package/dist/rpc/tiles-pb.js +0 -71
  519. package/dist/rpc/tiles-pb.js.map +0 -1
  520. package/dist/services/batch-url.d.ts +0 -18
  521. package/dist/services/batch-url.d.ts.map +0 -1
  522. package/dist/services/batch-url.js +0 -30
  523. package/dist/services/batch-url.js.map +0 -1
  524. package/dist/services/categories.d.ts +0 -21
  525. package/dist/services/categories.d.ts.map +0 -1
  526. package/dist/services/categories.js +0 -43
  527. package/dist/services/categories.js.map +0 -1
  528. package/dist/services/passiveassist.d.ts +0 -21
  529. package/dist/services/passiveassist.d.ts.map +0 -1
  530. package/dist/services/passiveassist.js +0 -70
  531. package/dist/services/passiveassist.js.map +0 -1
  532. package/dist/services/reveal.d.ts +0 -15
  533. package/dist/services/reveal.d.ts.map +0 -1
  534. package/dist/services/reveal.js +0 -41
  535. package/dist/services/reveal.js.map +0 -1
  536. package/dist/services/suggest.d.ts +0 -12
  537. package/dist/services/suggest.d.ts.map +0 -1
  538. package/dist/services/suggest.js +0 -36
  539. package/dist/services/suggest.js.map +0 -1
  540. package/dist/services/timezone.d.ts +0 -19
  541. package/dist/services/timezone.d.ts.map +0 -1
  542. package/dist/services/timezone.js +0 -91
  543. package/dist/services/timezone.js.map +0 -1
  544. package/dist/services/ugc-aggregates.d.ts +0 -17
  545. package/dist/services/ugc-aggregates.d.ts.map +0 -1
  546. package/dist/services/ugc-aggregates.js +0 -30
  547. package/dist/services/ugc-aggregates.js.map +0 -1
  548. package/dist/types/distance-matrix.d.ts +0 -40
  549. package/dist/types/distance-matrix.d.ts.map +0 -1
  550. package/dist/types/distance-matrix.js +0 -2
  551. package/dist/types/distance-matrix.js.map +0 -1
  552. package/dist/types/elevation.d.ts +0 -59
  553. package/dist/types/elevation.d.ts.map +0 -1
  554. package/dist/types/elevation.js +0 -2
  555. package/dist/types/elevation.js.map +0 -1
  556. package/dist/types/passiveassist.d.ts +0 -50
  557. package/dist/types/passiveassist.d.ts.map +0 -1
  558. package/dist/types/passiveassist.js +0 -2
  559. package/dist/types/passiveassist.js.map +0 -1
  560. package/dist/types/reveal.d.ts +0 -46
  561. package/dist/types/reveal.d.ts.map +0 -1
  562. package/dist/types/reveal.js +0 -2
  563. package/dist/types/reveal.js.map +0 -1
  564. package/dist/types/timezone.d.ts +0 -36
  565. package/dist/types/timezone.d.ts.map +0 -1
  566. package/dist/types/timezone.js +0 -2
  567. package/dist/types/timezone.js.map +0 -1
  568. package/dist/types/ugc-aggregates.d.ts +0 -14
  569. package/dist/types/ugc-aggregates.d.ts.map +0 -1
  570. package/dist/types/ugc-aggregates.js +0 -2
  571. package/dist/types/ugc-aggregates.js.map +0 -1
  572. package/dist/utils/abort.d.ts +0 -7
  573. package/dist/utils/abort.d.ts.map +0 -1
  574. package/dist/utils/abort.js +0 -43
  575. package/dist/utils/abort.js.map +0 -1
  576. package/dist/utils/chunked-decoder.d.ts +0 -9
  577. package/dist/utils/chunked-decoder.d.ts.map +0 -1
  578. package/dist/utils/chunked-decoder.js.map +0 -1
  579. package/dist/utils/coords.d.ts +0 -24
  580. package/dist/utils/coords.d.ts.map +0 -1
  581. package/dist/utils/coords.js +0 -37
  582. package/dist/utils/coords.js.map +0 -1
  583. package/dist/utils/feature-id.d.ts +0 -2
  584. package/dist/utils/feature-id.d.ts.map +0 -1
  585. package/dist/utils/feature-id.js +0 -11
  586. package/dist/utils/feature-id.js.map +0 -1
  587. package/dist/utils/load-env.d.ts +0 -7
  588. package/dist/utils/load-env.d.ts.map +0 -1
  589. package/dist/utils/load-env.js.map +0 -1
  590. package/dist/utils/pooled.d.ts +0 -8
  591. package/dist/utils/pooled.d.ts.map +0 -1
  592. package/dist/utils/pooled.js +0 -27
  593. package/dist/utils/pooled.js.map +0 -1
  594. package/dist/utils/request-context.d.ts +0 -9
  595. package/dist/utils/request-context.d.ts.map +0 -1
  596. package/dist/utils/request-context.js +0 -12
  597. package/dist/utils/request-context.js.map +0 -1
  598. package/dist/utils/request-scheduler.d.ts +0 -28
  599. package/dist/utils/request-scheduler.d.ts.map +0 -1
  600. package/dist/utils/request-scheduler.js +0 -58
  601. package/dist/utils/request-scheduler.js.map +0 -1
  602. package/dist/utils/response-parser.d.ts +0 -7
  603. package/dist/utils/response-parser.d.ts.map +0 -1
  604. package/dist/utils/response-parser.js +0 -50
  605. package/dist/utils/response-parser.js.map +0 -1
  606. package/dist/utils/retry-backoff.d.ts +0 -5
  607. package/dist/utils/retry-backoff.d.ts.map +0 -1
  608. package/dist/utils/retry-backoff.js +0 -23
  609. package/dist/utils/retry-backoff.js.map +0 -1
  610. package/dist/utils/safe-get.d.ts +0 -6
  611. package/dist/utils/safe-get.d.ts.map +0 -1
  612. package/dist/utils/safe-get.js +0 -29
  613. package/dist/utils/safe-get.js.map +0 -1
  614. package/dist/utils/throttle-detection.d.ts +0 -17
  615. package/dist/utils/throttle-detection.d.ts.map +0 -1
  616. package/dist/utils/throttle-detection.js +0 -71
  617. package/dist/utils/throttle-detection.js.map +0 -1
  618. package/dist/utils/ttl-cache.d.ts +0 -17
  619. package/dist/utils/ttl-cache.d.ts.map +0 -1
  620. package/dist/utils/ttl-cache.js +0 -43
  621. package/dist/utils/ttl-cache.js.map +0 -1
  622. /package/{assets → .github/assets}/banner.png +0 -0
@@ -1,5 +1,6 @@
1
1
  import { encodePolyline } from '../utils/encoded-polyline.js';
2
- import { safeGet } from '../utils/safe-get.js';
2
+ import { parseDistanceToMeters, parseDurationToSeconds } from '../utils/directions-metrics.js';
3
+ import { safeGet } from '../utils/payload.js';
3
4
  /**
4
5
  * Parse `/maps/preview/directions`.
5
6
  *
@@ -12,6 +13,9 @@ import { safeGet } from '../utils/safe-get.js';
12
13
  * Turn-by-turn steps: any node whose `[1]` is `<step …>` markup; per-step distance `[2][1]`,
13
14
  * duration `[3][1]`, lat/lng path `[7][1]` / `[7][2]`, maneuver CSS `[2][1]` when `dir-tt-*`.
14
15
  * Note: `[7][5][0]` is a Street View panoid, not an encoded polyline.
16
+ *
17
+ * Transit step extras: departure stop `[8][1]`, arrival stop `[8][3]`, departure Unix `[8][5][0]`,
18
+ * arrival Unix `[8][5][1]`, line colour `[6][0]`, vehicle icon `[6][2][4][0][0]`.
15
19
  */
16
20
  const DURATION_RE = /^\d[\d.,]*\s*(min|mins|minute|minutes|hr|hrs|hour|hours|h|days?)\b/i;
17
21
  const DISTANCE_RE = /^\d[\d.,]*\s*(km|m|mi|ft|miles?)$/i;
@@ -29,12 +33,17 @@ export function extractDirections(data) {
29
33
  const primary = result.routes[0];
30
34
  if (primary) {
31
35
  result.distance = primary.distance;
36
+ result.distanceMeters = primary.distanceMeters;
32
37
  result.duration = primary.duration;
38
+ result.durationSeconds = primary.durationSeconds;
33
39
  result.summary = primary.summary;
34
40
  result.durationInTraffic = primary.durationInTraffic;
41
+ result.durationInTrafficSeconds = primary.durationInTrafficSeconds;
35
42
  result.bounds = primary.bounds;
36
43
  result.warnings = primary.warnings;
37
44
  result.legs = primary.legs;
45
+ result.polyline = primary.polyline;
46
+ result.path = primary.path;
38
47
  }
39
48
  return result;
40
49
  }
@@ -106,26 +115,43 @@ function parseRoute(node) {
106
115
  if (!distance && !duration && steps.length === 0 && legs.length === 0)
107
116
  return null;
108
117
  if (legs.length === 0 && steps.length > 0) {
109
- legs.push({ distance, duration, summary: derivedSummary, steps });
118
+ legs.push({
119
+ distance,
120
+ distanceMeters: parseDistanceToMeters(distance),
121
+ duration,
122
+ durationSeconds: parseDurationToSeconds(duration),
123
+ summary: derivedSummary,
124
+ steps,
125
+ });
110
126
  }
111
127
  // We model a route as one leg spanning every step, so its totals are the
112
128
  // route totals; without this the leg's distance/duration are always unset.
113
129
  const soleLeg = legs.length === 1 ? legs[0] : undefined;
114
130
  if (soleLeg) {
115
131
  soleLeg.distance ??= distance;
132
+ soleLeg.distanceMeters ??= parseDistanceToMeters(soleLeg.distance);
116
133
  soleLeg.duration ??= duration;
134
+ soleLeg.durationSeconds ??= parseDurationToSeconds(soleLeg.duration);
117
135
  soleLeg.summary ??= derivedSummary;
118
136
  }
137
+ const distanceMeters = parseDistanceToMeters(distance);
138
+ const durationSeconds = parseDurationToSeconds(duration);
139
+ const durationInTrafficSeconds = parseDurationToSeconds(durationInTraffic);
140
+ const humanPath = pathToHuman(routePolyline.path);
119
141
  return {
120
142
  distance,
143
+ distanceMeters,
121
144
  duration,
145
+ durationSeconds,
122
146
  summary: derivedSummary,
123
147
  durationInTraffic,
148
+ durationInTrafficSeconds,
124
149
  bounds,
125
150
  warnings: warnings.length > 0 ? warnings : undefined,
126
151
  legs,
127
152
  polyline: routePolyline.encoded,
128
153
  path: routePolyline.path,
154
+ humanPath,
129
155
  };
130
156
  }
131
157
  function parseDurationInTraffic(header) {
@@ -148,7 +174,8 @@ function parseBounds(header) {
148
174
  const ne = coordFromNode(safeGet(box, 3));
149
175
  if (!sw || !ne)
150
176
  return undefined;
151
- return { southwest: sw, northeast: ne };
177
+ const label = `SW(${sw.lat.toFixed(5)}°, ${sw.lng.toFixed(5)}°) → NE(${ne.lat.toFixed(5)}°, ${ne.lng.toFixed(5)}°)`;
178
+ return { southwest: sw, northeast: ne, label };
152
179
  }
153
180
  function coordFromNode(node) {
154
181
  if (!Array.isArray(node))
@@ -187,12 +214,23 @@ function parseSteps(route) {
187
214
  if (typeof markup !== 'string')
188
215
  continue;
189
216
  const step = parseStepMarkup(markup);
190
- const distance = stringAt(holder, [2, 1], DISTANCE_RE);
191
- const duration = stringAt(holder, [3, 1], DURATION_RE);
192
- if (distance)
193
- step.distance = distance;
194
- if (duration)
195
- step.duration = duration;
217
+ // Distance — slot [2][1] or step markup meters attr fallback
218
+ const distStr = stringAt(holder, [2, 1], DISTANCE_RE);
219
+ if (distStr) {
220
+ step.distance = distStr;
221
+ step.distanceMeters = parseDistanceToMeters(distStr);
222
+ }
223
+ else if (step.meters != null) {
224
+ step.distance = `${step.meters} m`;
225
+ step.distanceMeters = step.meters;
226
+ }
227
+ // Duration — slot [3][1]
228
+ const durStr = stringAt(holder, [3, 1], DURATION_RE);
229
+ if (durStr) {
230
+ step.duration = durStr;
231
+ step.durationSeconds = parseDurationToSeconds(durStr);
232
+ }
233
+ // Turn hint — dir-tt-* CSS class at slot [2][1] (when present instead of distance)
196
234
  const css = safeGet(holder, 2, 1);
197
235
  if (typeof css === 'string' && css.startsWith('dir-tt')) {
198
236
  step.turn = parseTurnFromCss(css);
@@ -258,19 +296,85 @@ function parseTransitDetails(holder) {
258
296
  if (!Array.isArray(holder))
259
297
  return undefined;
260
298
  const details = {};
299
+ // Rich transit block at holder[8], preferred over the text heuristics below.
300
+ // Layout (from Maps web pb): [8][1] = departure stop, [8][3] = arrival stop,
301
+ // [8][5][0] = departure unix, [8][5][1] = arrival unix,
302
+ // [8][7] = num stops, [8][0] = line/route info block.
303
+ const transitBlock = safeGet(holder, 8);
304
+ if (Array.isArray(transitBlock)) {
305
+ const depStop = safeGet(transitBlock, 1);
306
+ const arrStop = safeGet(transitBlock, 3);
307
+ if (depStop)
308
+ details.departureStop = depStop;
309
+ if (arrStop)
310
+ details.arrivalStop = arrStop;
311
+ const numStops = safeGet(transitBlock, 7);
312
+ if (typeof numStops === 'number')
313
+ details.numStops = numStops;
314
+ const depUnix = safeGet(transitBlock, 5, 0);
315
+ const arrUnix = safeGet(transitBlock, 5, 1);
316
+ if (typeof depUnix === 'number' && depUnix > 0) {
317
+ details.departureAt = new Date(depUnix * 1000).toISOString();
318
+ details.departureTime = new Date(depUnix * 1000).toLocaleTimeString('en-US', {
319
+ hour: '2-digit',
320
+ minute: '2-digit',
321
+ hour12: true,
322
+ });
323
+ }
324
+ if (typeof arrUnix === 'number' && arrUnix > 0) {
325
+ details.arrivalAt = new Date(arrUnix * 1000).toISOString();
326
+ details.arrivalTime = new Date(arrUnix * 1000).toLocaleTimeString('en-US', {
327
+ hour: '2-digit',
328
+ minute: '2-digit',
329
+ hour12: true,
330
+ });
331
+ }
332
+ // Line/route block at [8][0]: [0] = route short name, [1] = line name,
333
+ // [2] = line colour, [3] = text colour, [4] = agency name.
334
+ const lineBlock = safeGet(transitBlock, 0);
335
+ if (Array.isArray(lineBlock)) {
336
+ const routeShort = safeGet(lineBlock, 0);
337
+ const lineName = safeGet(lineBlock, 1);
338
+ const lineColor = safeGet(lineBlock, 2);
339
+ const lineTextColor = safeGet(lineBlock, 3);
340
+ const agency = safeGet(lineBlock, 4);
341
+ if (routeShort)
342
+ details.routeShortName = routeShort;
343
+ if (lineName)
344
+ details.line = lineName;
345
+ if (lineColor)
346
+ details.lineColor = lineColor;
347
+ if (lineTextColor)
348
+ details.lineTextColor = lineTextColor;
349
+ if (agency)
350
+ details.agency = agency;
351
+ }
352
+ // Vehicle block at [8][6]: [3] = type, [4][0][0] = icon URL.
353
+ const vehicleBlock = safeGet(transitBlock, 6);
354
+ if (Array.isArray(vehicleBlock)) {
355
+ const vType = safeGet(vehicleBlock, 3);
356
+ const vIcon = safeGet(vehicleBlock, 4, 0, 0);
357
+ if (vType)
358
+ details.vehicleType = vType;
359
+ if (vIcon)
360
+ details.vehicleIconUrl = vIcon;
361
+ }
362
+ }
363
+ // Fallback: heuristic scan of text nodes for the step.
261
364
  const texts = [];
262
365
  collectStrings(holder, texts);
263
366
  for (const text of texts) {
264
- if (/^(bus|metro|train|tram|subway|ferry|walk)/i.test(text))
265
- details.line = details.line ?? text;
266
- if (/toward|towards/i.test(text))
367
+ if (!details.line && /^(bus|metro|train|tram|subway|ferry|walk)/i.test(text)) {
368
+ details.line = text;
369
+ }
370
+ if (!details.headsign && /toward|towards/i.test(text))
267
371
  details.headsign = text;
268
- if (/^\d+\s*stop/i.test(text)) {
269
- const num = Number(text.match(/(\d+)/)?.[1]);
270
- if (Number.isFinite(num))
271
- details.numStops = num;
372
+ if (details.numStops == null) {
373
+ const stopMatch = text.match(/^(\d+)\s*stop/i);
374
+ if (stopMatch)
375
+ details.numStops = Number(stopMatch[1]);
272
376
  }
273
- if (/^₹|^\$|€|fare/i.test(text))
377
+ if (!details.fare && /^₹|^\$|€|fare/i.test(text))
274
378
  details.fare = text;
275
379
  }
276
380
  return Object.keys(details).length > 0 ? details : undefined;
@@ -315,6 +419,12 @@ function stitchPolylines(steps) {
315
419
  return {};
316
420
  return { path, encoded: encodePolyline(path) };
317
421
  }
422
+ /** Convert a path to an array of human-readable "lat, lng" strings (5dp). */
423
+ function pathToHuman(path) {
424
+ if (!path || path.length === 0)
425
+ return undefined;
426
+ return path.map((p) => `${p.lat.toFixed(5)}, ${p.lng.toFixed(5)}`);
427
+ }
318
428
  /** Collect steps by finding every node whose [1] is `<step …>` markup. */
319
429
  export function parseStepMarkup(markup) {
320
430
  const step = {};
@@ -322,8 +432,12 @@ export function parseStepMarkup(markup) {
322
432
  if (maneuver)
323
433
  step.maneuver = maneuver;
324
434
  const meters = markup.match(/<step[^>]*\bmeters='(\d+)'/)?.[1];
325
- if (meters)
435
+ if (meters) {
326
436
  step.meters = Number(meters);
437
+ // Pre-populate distanceMeters from meters attr as a bootstrap value;
438
+ // will be overwritten by the slot-based distance string when available.
439
+ step.distanceMeters ??= Number(meters);
440
+ }
327
441
  const roads = [...markup.matchAll(/<road\b[^>]*>([^<]+)<\/road>/g)].map((match) => match[1].trim());
328
442
  if (roads.length > 0)
329
443
  step.roads = roads;
@@ -385,4 +499,104 @@ function findFirst(node, predicate, depth = 0) {
385
499
  }
386
500
  return undefined;
387
501
  }
502
+ function parseTriplet(node) {
503
+ if (!Array.isArray(node) || typeof node[0] !== 'number' || !Number.isFinite(node[0])) {
504
+ return undefined;
505
+ }
506
+ const text = typeof node[1] === 'string' ? node[1] : undefined;
507
+ return { meters: node[0], text };
508
+ }
509
+ /** Delta-decode cumulative distances encoded in directions elevation slot [16][2][6]. */
510
+ export function decodeCumulativeDistances(encoded) {
511
+ if (encoded.length === 0)
512
+ return [];
513
+ let current = encoded[0];
514
+ const out = [current];
515
+ for (let i = 1; i < encoded.length; i++) {
516
+ current += encoded[i];
517
+ out.push(current);
518
+ }
519
+ return out;
520
+ }
521
+ function buildSummary(block) {
522
+ const min = parseTriplet(block[0]);
523
+ const max = parseTriplet(block[1]);
524
+ const start = parseTriplet(block[2]);
525
+ const end = parseTriplet(block[3]);
526
+ const gain = parseTriplet(block[4]);
527
+ const loss = parseTriplet(block[5]);
528
+ if (!min || !max || !start || !end || !gain || !loss)
529
+ return undefined;
530
+ return {
531
+ minElevationMeters: min.meters,
532
+ maxElevationMeters: max.meters,
533
+ startElevationMeters: start.meters,
534
+ endElevationMeters: end.meters,
535
+ gainMeters: gain.meters,
536
+ lossMeters: loss.meters,
537
+ minElevationText: min.text,
538
+ maxElevationText: max.text,
539
+ };
540
+ }
541
+ function buildProfile(block) {
542
+ const encoded = safeGet(block, 6);
543
+ const grades = safeGet(block, 7);
544
+ if (!encoded || encoded.length === 0)
545
+ return undefined;
546
+ const distances = decodeCumulativeDistances(encoded);
547
+ const samples = distances.map((distanceMeters, index) => ({
548
+ distanceMeters,
549
+ gradePercent: grades?.[index],
550
+ }));
551
+ return samples.length > 0 ? samples : undefined;
552
+ }
553
+ function isElevationBlock(block) {
554
+ if (!Array.isArray(block))
555
+ return false;
556
+ const hasStats = parseTriplet(block[0]) != null && parseTriplet(block[2]) != null;
557
+ const hasProfile = Array.isArray(block[6]) && block[6].length > 0;
558
+ return hasStats || hasProfile;
559
+ }
560
+ function collectElevationBlocks(routeInner) {
561
+ const blocks = [];
562
+ const nested = safeGet(routeInner, 16, 2);
563
+ if (isElevationBlock(nested))
564
+ blocks.push(nested);
565
+ const flat = safeGet(routeInner, 17);
566
+ if (isElevationBlock(flat))
567
+ blocks.push(flat);
568
+ return blocks;
569
+ }
570
+ /**
571
+ * Extract bicycling/walking elevation data from `/maps/preview/directions` payload.
572
+ *
573
+ * Primary block: route alternative `[0][1][i][0][16][2]`.
574
+ * Fallback duplicate: `[0][1][i][17]` (partial on some walking routes).
575
+ */
576
+ export function extractDirectionsElevation(data) {
577
+ const alternatives = safeGet(data, 0, 1);
578
+ if (!Array.isArray(alternatives)) {
579
+ return { status: 'UNAVAILABLE' };
580
+ }
581
+ for (const alt of alternatives) {
582
+ const routeInner = safeGet(alt, 0);
583
+ if (!routeInner)
584
+ continue;
585
+ for (const block of collectElevationBlocks(routeInner)) {
586
+ const summary = buildSummary(block);
587
+ const profile = buildProfile(block);
588
+ if (!summary && !profile)
589
+ continue;
590
+ const pathDistanceMeters = profile && profile.length > 0 ? profile[profile.length - 1].distanceMeters : undefined;
591
+ return {
592
+ status: 'OK',
593
+ summary,
594
+ profile,
595
+ pathDistanceMeters,
596
+ startElevationMeters: summary?.startElevationMeters,
597
+ };
598
+ }
599
+ }
600
+ return { status: 'UNAVAILABLE' };
601
+ }
388
602
  //# sourceMappingURL=directions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directions.js","sourceRoot":"","sources":["../../src/parsers/directions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directions.js","sourceRoot":"","sources":["../../src/parsers/directions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { GeocodeResult } from '../types/geocode.js';
2
- import type { PbNode } from '../types/protobuf.js';
1
+ import { type GeocodeResult } from '../types/geocode.js';
2
+ import { type PbNode } from '../types/protobuf.js';
3
+ import { type TimezoneOffsetSource, type TimezoneResult } from '../types/geocode.js';
3
4
  /** Extract geocode results from `search?tbm=map` protobuf-over-JSON response. */
4
5
  export declare function extractGeocodeResults(data: PbNode): GeocodeResult[];
5
6
  /** Split parsed rows into best match and alternates. */
@@ -8,4 +9,21 @@ export declare function toGeocodeResponse(results: GeocodeResult[], raw?: unknow
8
9
  alternatives: GeocodeResult[];
9
10
  raw?: unknown;
10
11
  };
12
+ /** Pick the first IANA timezone from geocode rows. */
13
+ export declare function extractTimezoneFromGeocodeResults(results: Array<GeocodeResult | null | undefined>): string | undefined;
14
+ /**
15
+ * Build forward-geocode queries from a reverse hit's plus-code address.
16
+ * e.g. `46J5+FPF Sydney, New South Wales, Australia` → `Sydney, Australia`.
17
+ */
18
+ export declare function localityQueriesFromReverseHit(hit: GeocodeResult): string[];
19
+ export interface DerivedTimezoneOffset {
20
+ rawOffsetMinutes: number;
21
+ dstOffsetMinutes: number;
22
+ totalOffsetMinutes: number;
23
+ isDst: boolean;
24
+ offsetSource: TimezoneOffsetSource;
25
+ }
26
+ /** Derive UTC offset for an IANA timezone at `at` using Intl (not from Google payload). */
27
+ export declare function deriveTimezoneOffset(timeZoneId: string, at?: Date): DerivedTimezoneOffset | undefined;
28
+ export declare function buildTimezoneResult(lat: number, lng: number, timeZoneId: string | undefined, at?: Date): TimezoneResult;
11
29
  //# sourceMappingURL=geocode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geocode.d.ts","sourceRoot":"","sources":["../../src/parsers/geocode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAiB,MAAM,EAAyB,MAAM,sBAAsB,CAAC;AA4FzF,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAenE;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EAAE,EACxB,GAAG,CAAC,EAAE,OAAO,GACZ;IAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,aAAa,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAOhF"}
1
+ {"version":3,"file":"geocode.d.ts","sourceRoot":"","sources":["../../src/parsers/geocode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,MAAM,EAAiF,MAAM,sBAAsB,CAAC;AAIlI,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkGrF,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAenE;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EAAE,EACxB,GAAG,CAAC,EAAE,OAAO,GACZ;IAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,aAAa,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAOhF;AAID,sDAAsD;AACtD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,MAAM,GAAG,SAAS,CAKpB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAmB1E;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,GAAE,IAAiB,GACpB,qBAAqB,GAAG,SAAS,CAiCnC;AAgBD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,EAAE,GAAE,IAAiB,GACpB,cAAc,CAiBhB"}
@@ -1,10 +1,8 @@
1
1
  import { asPlaceDataNode, asSearchRoot } from '../types/protobuf.js';
2
2
  import { encodePlusCode } from '../utils/plus-code.js';
3
- import { safeGet } from '../utils/safe-get.js';
3
+ import { safeGet } from '../utils/payload.js';
4
+ import { asString as optionalString } from './shared.js';
4
5
  const COORD_LINE_RE = /^-?\d+(?:\.\d+)?\s*,\s*-?\d+(?:\.\d+)?$/;
5
- function optionalString(value) {
6
- return typeof value === 'string' && value.length > 0 ? value : undefined;
7
- }
8
6
  function isCoordinateLine(value) {
9
7
  return COORD_LINE_RE.test(value.trim());
10
8
  }
@@ -16,7 +14,7 @@ function parseAddressComponents(raw) {
16
14
  return undefined;
17
15
  if (parts.every(isCoordinateLine))
18
16
  return undefined;
19
- return parts.map((longName) => ({ longName }));
17
+ return parts.map((longName, index) => ({ longName, raw: raw[index] }));
20
18
  }
21
19
  function parseSingleGeocodeResult(placeRow) {
22
20
  const lat = safeGet(placeRow, 9, 2);
@@ -33,11 +31,19 @@ function parseSingleGeocodeResult(placeRow) {
33
31
  const payloadPlusCode = optionalString(safeGet(placeRow, 183, 2, 1, 0));
34
32
  const plusCode = payloadPlusCode ?? encodePlusCode(lat, lng);
35
33
  const plusCodeSource = payloadPlusCode ? 'payload' : 'derived-olc';
34
+ // Primary category — first entry in placeRow[13] when it's an array of strings
35
+ const categoriesRaw = safeGet(placeRow, 13);
36
+ const category = Array.isArray(categoriesRaw)
37
+ ? categoriesRaw.find((c) => typeof c === 'string' && c.length > 0)
38
+ : undefined;
39
+ // hexId presence + rating block presence = POI vs. generic location
40
+ const hexId = optionalString(safeGet(placeRow, 10));
41
+ const isPoi = hexId != null ? true : undefined;
36
42
  const result = {
37
43
  name,
38
44
  lat,
39
45
  lng,
40
- hexId: optionalString(safeGet(placeRow, 10)),
46
+ hexId,
41
47
  placeId: optionalString(safeGet(placeRow, 78)),
42
48
  timezone: optionalString(safeGet(placeRow, 30)),
43
49
  formattedAddress: formattedFromRow ?? plusCodeAddress,
@@ -45,6 +51,9 @@ function parseSingleGeocodeResult(placeRow) {
45
51
  plusCode,
46
52
  plusCodeAddress,
47
53
  plusCodeSource,
54
+ category,
55
+ isPoi,
56
+ raw: placeRow,
48
57
  };
49
58
  return result;
50
59
  }
@@ -101,4 +110,99 @@ export function toGeocodeResponse(results, raw) {
101
110
  const [result, ...alternatives] = results;
102
111
  return { result: result ?? null, alternatives, raw };
103
112
  }
113
+ const PLUS_CODE_PREFIX_RE = /^[23456789CFGHJMPQRVWX]{4,8}\+[23456789CFGHJMPQRVWX]{2,3}\s+/i;
114
+ /** Pick the first IANA timezone from geocode rows. */
115
+ export function extractTimezoneFromGeocodeResults(results) {
116
+ for (const row of results) {
117
+ if (row?.timezone && row.timezone.includes('/'))
118
+ return row.timezone;
119
+ }
120
+ return undefined;
121
+ }
122
+ /**
123
+ * Build forward-geocode queries from a reverse hit's plus-code address.
124
+ * e.g. `46J5+FPF Sydney, New South Wales, Australia` → `Sydney, Australia`.
125
+ */
126
+ export function localityQueriesFromReverseHit(hit) {
127
+ const raw = hit.plusCodeAddress ?? hit.formattedAddress;
128
+ if (!raw)
129
+ return [];
130
+ const withoutCode = raw.replace(PLUS_CODE_PREFIX_RE, '').trim();
131
+ if (!withoutCode)
132
+ return [];
133
+ const parts = withoutCode.split(',').map((part) => part.trim()).filter(Boolean);
134
+ const queries = new Set();
135
+ queries.add(withoutCode);
136
+ if (parts.length >= 2) {
137
+ queries.add(`${parts[0]}, ${parts[parts.length - 1]}`);
138
+ }
139
+ if (parts.length >= 3) {
140
+ queries.add(`${parts[0]}, ${parts[1]}, ${parts[parts.length - 1]}`);
141
+ }
142
+ return [...queries];
143
+ }
144
+ /** Derive UTC offset for an IANA timezone at `at` using Intl (not from Google payload). */
145
+ export function deriveTimezoneOffset(timeZoneId, at = new Date()) {
146
+ try {
147
+ const parts = new Intl.DateTimeFormat('en-US', {
148
+ timeZone: timeZoneId,
149
+ timeZoneName: 'longOffset',
150
+ }).formatToParts(at);
151
+ const offsetText = parts.find((part) => part.type === 'timeZoneName')?.value;
152
+ const match = offsetText?.match(/GMT([+-])(\d{1,2})(?::(\d{2}))?/i);
153
+ if (!match)
154
+ return undefined;
155
+ const sign = match[1] === '-' ? -1 : 1;
156
+ const hours = Number.parseInt(match[2], 10);
157
+ const minutes = match[3] ? Number.parseInt(match[3], 10) : 0;
158
+ const totalOffsetMinutes = sign * (hours * 60 + minutes);
159
+ const jan = new Date(Date.UTC(at.getUTCFullYear(), 0, 1));
160
+ const jul = new Date(Date.UTC(at.getUTCFullYear(), 6, 1));
161
+ const janOffset = deriveTotalOffsetMinutes(timeZoneId, jan);
162
+ const julOffset = deriveTotalOffsetMinutes(timeZoneId, jul);
163
+ const rawOffsetMinutes = Math.min(janOffset, julOffset);
164
+ const dstOffsetMinutes = totalOffsetMinutes - rawOffsetMinutes;
165
+ return {
166
+ rawOffsetMinutes,
167
+ dstOffsetMinutes,
168
+ totalOffsetMinutes,
169
+ isDst: dstOffsetMinutes !== 0,
170
+ offsetSource: 'derived-intl',
171
+ };
172
+ }
173
+ catch {
174
+ return undefined;
175
+ }
176
+ }
177
+ function deriveTotalOffsetMinutes(timeZoneId, at) {
178
+ const parts = new Intl.DateTimeFormat('en-US', {
179
+ timeZone: timeZoneId,
180
+ timeZoneName: 'longOffset',
181
+ }).formatToParts(at);
182
+ const offsetText = parts.find((part) => part.type === 'timeZoneName')?.value;
183
+ const match = offsetText?.match(/GMT([+-])(\d{1,2})(?::(\d{2}))?/i);
184
+ if (!match)
185
+ return 0;
186
+ const sign = match[1] === '-' ? -1 : 1;
187
+ const hours = Number.parseInt(match[2], 10);
188
+ const minutes = match[3] ? Number.parseInt(match[3], 10) : 0;
189
+ return sign * (hours * 60 + minutes);
190
+ }
191
+ export function buildTimezoneResult(lat, lng, timeZoneId, at = new Date()) {
192
+ if (!timeZoneId) {
193
+ return { lat, lng, status: 'NOT_FOUND' };
194
+ }
195
+ const derived = deriveTimezoneOffset(timeZoneId, at);
196
+ return {
197
+ lat,
198
+ lng,
199
+ timeZoneId,
200
+ status: 'OK',
201
+ rawOffsetMinutes: derived?.rawOffsetMinutes,
202
+ dstOffsetMinutes: derived?.dstOffsetMinutes,
203
+ totalOffsetMinutes: derived?.totalOffsetMinutes,
204
+ isDst: derived?.isDst,
205
+ offsetSource: derived?.offsetSource,
206
+ };
207
+ }
104
208
  //# sourceMappingURL=geocode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geocode.js","sourceRoot":"","sources":["../../src/parsers/geocode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geocode.js","sourceRoot":"","sources":["../../src/parsers/geocode.ts"],"names":[],"mappings":"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"}