googlemaps-kit 0.4.0 → 0.6.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 (661) hide show
  1. package/README.md +228 -27
  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 +47 -10
  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 +1 -0
  33. package/dist/cli/args.d.ts.map +1 -1
  34. package/dist/cli/args.js +24 -0
  35. package/dist/cli/args.js.map +1 -1
  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 +55 -3
  44. package/dist/cli/run.d.ts.map +1 -1
  45. package/dist/cli/run.js +239 -18
  46. package/dist/cli/run.js.map +1 -1
  47. package/dist/cli/tui/app.d.ts +7 -2
  48. package/dist/cli/tui/app.d.ts.map +1 -1
  49. package/dist/cli/tui/app.js +116 -31
  50. package/dist/cli/tui/app.js.map +1 -1
  51. package/dist/cli/tui/styles.d.ts.map +1 -1
  52. package/dist/cli/tui/styles.js +13 -10
  53. package/dist/cli/tui/styles.js.map +1 -1
  54. package/dist/cli.d.ts +1 -10
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +122 -36
  57. package/dist/cli.js.map +1 -1
  58. package/dist/client/gmaps-client.d.ts +14 -31
  59. package/dist/client/gmaps-client.d.ts.map +1 -1
  60. package/dist/client/gmaps-client.js +52 -130
  61. package/dist/client/gmaps-client.js.map +1 -1
  62. package/dist/client/http-client.d.ts.map +1 -1
  63. package/dist/client/http-client.js +11 -9
  64. package/dist/client/http-client.js.map +1 -1
  65. package/dist/client/intent.d.ts +2 -12
  66. package/dist/client/intent.d.ts.map +1 -1
  67. package/dist/client/intent.js +39 -18
  68. package/dist/client/intent.js.map +1 -1
  69. package/dist/client/maps-tools.d.ts +19 -3
  70. package/dist/client/maps-tools.d.ts.map +1 -1
  71. package/dist/client/maps-tools.js +57 -4
  72. package/dist/client/maps-tools.js.map +1 -1
  73. package/dist/client/namespaces.d.ts +125 -16
  74. package/dist/client/namespaces.d.ts.map +1 -1
  75. package/dist/client/namespaces.js +189 -23
  76. package/dist/client/namespaces.js.map +1 -1
  77. package/dist/client/place-enrichment.js +1 -1
  78. package/dist/client/place-enrichment.js.map +1 -1
  79. package/dist/client/place-workflows.d.ts +7 -0
  80. package/dist/client/place-workflows.d.ts.map +1 -0
  81. package/dist/client/place-workflows.js +113 -0
  82. package/dist/client/place-workflows.js.map +1 -0
  83. package/dist/index.d.ts +54 -19
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +8 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/known-surfaces.d.ts +173 -5
  88. package/dist/known-surfaces.d.ts.map +1 -1
  89. package/dist/known-surfaces.js +173 -5
  90. package/dist/known-surfaces.js.map +1 -1
  91. package/dist/parsers/batch-url.d.ts +10 -1
  92. package/dist/parsers/batch-url.d.ts.map +1 -1
  93. package/dist/parsers/batch-url.js +30 -2
  94. package/dist/parsers/batch-url.js.map +1 -1
  95. package/dist/parsers/boq-reviews.d.ts +8 -1
  96. package/dist/parsers/boq-reviews.d.ts.map +1 -1
  97. package/dist/parsers/boq-reviews.js +50 -8
  98. package/dist/parsers/boq-reviews.js.map +1 -1
  99. package/dist/parsers/categories.d.ts.map +1 -1
  100. package/dist/parsers/categories.js +13 -10
  101. package/dist/parsers/categories.js.map +1 -1
  102. package/dist/parsers/directions.d.ts +18 -2
  103. package/dist/parsers/directions.d.ts.map +1 -1
  104. package/dist/parsers/directions.js +232 -18
  105. package/dist/parsers/directions.js.map +1 -1
  106. package/dist/parsers/geocode.d.ts +20 -2
  107. package/dist/parsers/geocode.d.ts.map +1 -1
  108. package/dist/parsers/geocode.js +139 -6
  109. package/dist/parsers/geocode.js.map +1 -1
  110. package/dist/parsers/knowledge.js +1 -1
  111. package/dist/parsers/knowledge.js.map +1 -1
  112. package/dist/parsers/lists.d.ts.map +1 -1
  113. package/dist/parsers/lists.js +29 -12
  114. package/dist/parsers/lists.js.map +1 -1
  115. package/dist/parsers/local-posts.d.ts.map +1 -1
  116. package/dist/parsers/local-posts.js +97 -12
  117. package/dist/parsers/local-posts.js.map +1 -1
  118. package/dist/parsers/mobility.d.ts +42 -0
  119. package/dist/parsers/mobility.d.ts.map +1 -0
  120. package/dist/parsers/mobility.js +130 -0
  121. package/dist/parsers/mobility.js.map +1 -0
  122. package/dist/parsers/panorama.d.ts +0 -1
  123. package/dist/parsers/panorama.d.ts.map +1 -1
  124. package/dist/parsers/panorama.js +117 -14
  125. package/dist/parsers/panorama.js.map +1 -1
  126. package/dist/parsers/photos.d.ts.map +1 -1
  127. package/dist/parsers/photos.js +15 -8
  128. package/dist/parsers/photos.js.map +1 -1
  129. package/dist/parsers/place-attributes.d.ts +12 -3
  130. package/dist/parsers/place-attributes.d.ts.map +1 -1
  131. package/dist/parsers/place-attributes.js +48 -2
  132. package/dist/parsers/place-attributes.js.map +1 -1
  133. package/dist/parsers/place-extended.d.ts +163 -0
  134. package/dist/parsers/place-extended.d.ts.map +1 -0
  135. package/dist/parsers/place-extended.js +741 -0
  136. package/dist/parsers/place-extended.js.map +1 -0
  137. package/dist/parsers/place.d.ts +15 -1
  138. package/dist/parsers/place.d.ts.map +1 -1
  139. package/dist/parsers/place.js +16 -5
  140. package/dist/parsers/place.js.map +1 -1
  141. package/dist/parsers/popular-times.d.ts +35 -0
  142. package/dist/parsers/popular-times.d.ts.map +1 -0
  143. package/dist/parsers/popular-times.js +149 -0
  144. package/dist/parsers/popular-times.js.map +1 -0
  145. package/dist/parsers/reveal.d.ts +1 -1
  146. package/dist/parsers/reveal.d.ts.map +1 -1
  147. package/dist/parsers/reveal.js +3 -2
  148. package/dist/parsers/reveal.js.map +1 -1
  149. package/dist/parsers/reviews.d.ts +24 -2
  150. package/dist/parsers/reviews.d.ts.map +1 -1
  151. package/dist/parsers/reviews.js +110 -1
  152. package/dist/parsers/reviews.js.map +1 -1
  153. package/dist/parsers/search.d.ts +17 -2
  154. package/dist/parsers/search.d.ts.map +1 -1
  155. package/dist/parsers/search.js +125 -7
  156. package/dist/parsers/search.js.map +1 -1
  157. package/dist/parsers/shared.d.ts +4 -0
  158. package/dist/parsers/shared.d.ts.map +1 -1
  159. package/dist/parsers/shared.js +10 -2
  160. package/dist/parsers/shared.js.map +1 -1
  161. package/dist/parsers/suggest.d.ts.map +1 -1
  162. package/dist/parsers/suggest.js +45 -6
  163. package/dist/parsers/suggest.js.map +1 -1
  164. package/dist/parsers/tiles.d.ts +13 -0
  165. package/dist/parsers/tiles.d.ts.map +1 -1
  166. package/dist/parsers/tiles.js +64 -0
  167. package/dist/parsers/tiles.js.map +1 -1
  168. package/dist/parsers/traffic.d.ts +9 -1
  169. package/dist/parsers/traffic.d.ts.map +1 -1
  170. package/dist/parsers/traffic.js +129 -2
  171. package/dist/parsers/traffic.js.map +1 -1
  172. package/dist/parsers/transit.d.ts +4 -2
  173. package/dist/parsers/transit.d.ts.map +1 -1
  174. package/dist/parsers/transit.js +385 -3
  175. package/dist/parsers/transit.js.map +1 -1
  176. package/dist/parsers/viewport.d.ts +20 -0
  177. package/dist/parsers/viewport.d.ts.map +1 -0
  178. package/dist/parsers/viewport.js +139 -0
  179. package/dist/parsers/viewport.js.map +1 -0
  180. package/dist/platform/catalog.d.ts +18 -0
  181. package/dist/platform/catalog.d.ts.map +1 -0
  182. package/dist/platform/catalog.js +329 -0
  183. package/dist/platform/catalog.js.map +1 -0
  184. package/dist/platform/parity.d.ts +12 -0
  185. package/dist/platform/parity.d.ts.map +1 -0
  186. package/dist/platform/parity.js +25 -0
  187. package/dist/platform/parity.js.map +1 -0
  188. package/dist/rpc/batch-execute.js +3 -3
  189. package/dist/rpc/batch-execute.js.map +1 -1
  190. package/dist/rpc/batch-request-builders.d.ts +12 -14
  191. package/dist/rpc/batch-request-builders.d.ts.map +1 -1
  192. package/dist/rpc/batch-request-builders.js +49 -17
  193. package/dist/rpc/batch-request-builders.js.map +1 -1
  194. package/dist/rpc/batch-rpc.js +1 -1
  195. package/dist/rpc/batch-services.d.ts +2 -0
  196. package/dist/rpc/batch-services.d.ts.map +1 -1
  197. package/dist/rpc/batch-services.js +4 -0
  198. package/dist/rpc/batch-services.js.map +1 -1
  199. package/dist/rpc/{descriptor-registry.d.ts → descriptors.d.ts} +29 -4
  200. package/dist/rpc/descriptors.d.ts.map +1 -0
  201. package/dist/rpc/{app-options.js → descriptors.js} +89 -5
  202. package/dist/rpc/descriptors.js.map +1 -0
  203. package/dist/rpc/earth-rocktree.d.ts +174 -0
  204. package/dist/rpc/earth-rocktree.d.ts.map +1 -0
  205. package/dist/rpc/earth-rocktree.js +468 -0
  206. package/dist/rpc/earth-rocktree.js.map +1 -0
  207. package/dist/rpc/feature-pb.d.ts +86 -0
  208. package/dist/rpc/feature-pb.d.ts.map +1 -0
  209. package/dist/rpc/feature-pb.js +112 -0
  210. package/dist/rpc/feature-pb.js.map +1 -0
  211. package/dist/rpc/feature-rpc.d.ts +15 -0
  212. package/dist/rpc/feature-rpc.d.ts.map +1 -1
  213. package/dist/rpc/feature-rpc.js +44 -0
  214. package/dist/rpc/feature-rpc.js.map +1 -1
  215. package/dist/rpc/maps-runtime.js +1 -1
  216. package/dist/rpc/panorama-pb.d.ts +3 -0
  217. package/dist/rpc/panorama-pb.d.ts.map +1 -1
  218. package/dist/rpc/panorama-pb.js +35 -3
  219. package/dist/rpc/panorama-pb.js.map +1 -1
  220. package/dist/rpc/pb-builders.d.ts +21 -1
  221. package/dist/rpc/pb-builders.d.ts.map +1 -1
  222. package/dist/rpc/pb-builders.js +62 -4
  223. package/dist/rpc/pb-builders.js.map +1 -1
  224. package/dist/rpc/photos-pb.d.ts +28 -1
  225. package/dist/rpc/photos-pb.d.ts.map +1 -1
  226. package/dist/rpc/photos-pb.js +96 -0
  227. package/dist/rpc/photos-pb.js.map +1 -1
  228. package/dist/rpc/rpc-methods.d.ts +0 -2
  229. package/dist/rpc/rpc-methods.d.ts.map +1 -1
  230. package/dist/rpc/rpc-methods.js +0 -38
  231. package/dist/rpc/rpc-methods.js.map +1 -1
  232. package/dist/rpc/search-filters.d.ts +0 -12
  233. package/dist/rpc/search-filters.d.ts.map +1 -1
  234. package/dist/rpc/search-filters.js +1 -11
  235. package/dist/rpc/search-filters.js.map +1 -1
  236. package/dist/rpc/tile-builders.d.ts +136 -0
  237. package/dist/rpc/tile-builders.d.ts.map +1 -0
  238. package/dist/rpc/tile-builders.js +172 -0
  239. package/dist/rpc/tile-builders.js.map +1 -0
  240. package/dist/rpc/xsrf-bootstrap.d.ts +0 -2
  241. package/dist/rpc/xsrf-bootstrap.d.ts.map +1 -1
  242. package/dist/rpc/xsrf-bootstrap.js +2 -2
  243. package/dist/rpc/xsrf-bootstrap.js.map +1 -1
  244. package/dist/services/aerial-view.d.ts +22 -0
  245. package/dist/services/aerial-view.d.ts.map +1 -0
  246. package/dist/services/aerial-view.js +107 -0
  247. package/dist/services/aerial-view.js.map +1 -0
  248. package/dist/services/ask-maps.d.ts +45 -5
  249. package/dist/services/ask-maps.d.ts.map +1 -1
  250. package/dist/services/ask-maps.js +148 -21
  251. package/dist/services/ask-maps.js.map +1 -1
  252. package/dist/services/directions.d.ts +17 -1
  253. package/dist/services/directions.d.ts.map +1 -1
  254. package/dist/services/directions.js +32 -0
  255. package/dist/services/directions.js.map +1 -1
  256. package/dist/services/distance-matrix.d.ts +1 -1
  257. package/dist/services/distance-matrix.d.ts.map +1 -1
  258. package/dist/services/distance-matrix.js +1 -1
  259. package/dist/services/distance-matrix.js.map +1 -1
  260. package/dist/services/elevation.d.ts +7 -5
  261. package/dist/services/elevation.d.ts.map +1 -1
  262. package/dist/services/elevation.js +42 -6
  263. package/dist/services/elevation.js.map +1 -1
  264. package/dist/services/environment/air-quality.d.ts +39 -0
  265. package/dist/services/environment/air-quality.d.ts.map +1 -0
  266. package/dist/services/environment/air-quality.js +86 -0
  267. package/dist/services/environment/air-quality.js.map +1 -0
  268. package/dist/services/environment/weather.d.ts +39 -0
  269. package/dist/services/environment/weather.d.ts.map +1 -0
  270. package/dist/services/environment/weather.js +54 -0
  271. package/dist/services/environment/weather.js.map +1 -0
  272. package/dist/services/geocode.d.ts +21 -1
  273. package/dist/services/geocode.d.ts.map +1 -1
  274. package/dist/services/geocode.js +103 -0
  275. package/dist/services/geocode.js.map +1 -1
  276. package/dist/services/keyed.d.ts +80 -0
  277. package/dist/services/keyed.d.ts.map +1 -0
  278. package/dist/services/keyed.js +152 -0
  279. package/dist/services/keyed.js.map +1 -0
  280. package/dist/services/knowledge.d.ts +6 -2
  281. package/dist/services/knowledge.d.ts.map +1 -1
  282. package/dist/services/knowledge.js +30 -5
  283. package/dist/services/knowledge.js.map +1 -1
  284. package/dist/services/lists.d.ts +7 -1
  285. package/dist/services/lists.d.ts.map +1 -1
  286. package/dist/services/lists.js +45 -1
  287. package/dist/services/lists.js.map +1 -1
  288. package/dist/services/map-3d.d.ts +66 -0
  289. package/dist/services/map-3d.d.ts.map +1 -0
  290. package/dist/services/map-3d.js +658 -0
  291. package/dist/services/map-3d.js.map +1 -0
  292. package/dist/services/map-layers.d.ts +33 -0
  293. package/dist/services/map-layers.d.ts.map +1 -0
  294. package/dist/services/map-layers.js +207 -0
  295. package/dist/services/map-layers.js.map +1 -0
  296. package/dist/services/meta.d.ts +71 -0
  297. package/dist/services/meta.d.ts.map +1 -0
  298. package/dist/services/meta.js +132 -0
  299. package/dist/services/meta.js.map +1 -0
  300. package/dist/services/mobility.d.ts +79 -0
  301. package/dist/services/mobility.d.ts.map +1 -0
  302. package/dist/services/mobility.js +307 -0
  303. package/dist/services/mobility.js.map +1 -0
  304. package/dist/services/nearby-search.d.ts +32 -0
  305. package/dist/services/nearby-search.d.ts.map +1 -0
  306. package/dist/services/nearby-search.js +85 -0
  307. package/dist/services/nearby-search.js.map +1 -0
  308. package/dist/services/panorama.d.ts +19 -1
  309. package/dist/services/panorama.d.ts.map +1 -1
  310. package/dist/services/panorama.js +111 -3
  311. package/dist/services/panorama.js.map +1 -1
  312. package/dist/services/photos.d.ts.map +1 -1
  313. package/dist/services/photos.js +12 -6
  314. package/dist/services/photos.js.map +1 -1
  315. package/dist/services/place-attributes.d.ts +31 -0
  316. package/dist/services/place-attributes.d.ts.map +1 -0
  317. package/dist/services/place-attributes.js +48 -0
  318. package/dist/services/place-attributes.js.map +1 -0
  319. package/dist/services/places.d.ts +13 -0
  320. package/dist/services/places.d.ts.map +1 -1
  321. package/dist/services/places.js +7 -4
  322. package/dist/services/places.js.map +1 -1
  323. package/dist/services/reviews.d.ts +11 -1
  324. package/dist/services/reviews.d.ts.map +1 -1
  325. package/dist/services/reviews.js +36 -12
  326. package/dist/services/reviews.js.map +1 -1
  327. package/dist/services/search-along-route.d.ts +33 -0
  328. package/dist/services/search-along-route.d.ts.map +1 -0
  329. package/dist/services/search-along-route.js +200 -0
  330. package/dist/services/search-along-route.js.map +1 -0
  331. package/dist/services/search.d.ts +29 -2
  332. package/dist/services/search.d.ts.map +1 -1
  333. package/dist/services/search.js +169 -6
  334. package/dist/services/search.js.map +1 -1
  335. package/dist/services/static-map.js +1 -1
  336. package/dist/services/static-map.js.map +1 -1
  337. package/dist/services/tiles.d.ts +39 -2
  338. package/dist/services/tiles.d.ts.map +1 -1
  339. package/dist/services/tiles.js +172 -13
  340. package/dist/services/tiles.js.map +1 -1
  341. package/dist/services/traffic.d.ts +12 -1
  342. package/dist/services/traffic.d.ts.map +1 -1
  343. package/dist/services/traffic.js +25 -2
  344. package/dist/services/traffic.js.map +1 -1
  345. package/dist/services/transit.d.ts +20 -3
  346. package/dist/services/transit.d.ts.map +1 -1
  347. package/dist/services/transit.js +69 -1
  348. package/dist/services/transit.js.map +1 -1
  349. package/dist/services/viewport.d.ts +76 -0
  350. package/dist/services/viewport.d.ts.map +1 -0
  351. package/dist/services/viewport.js +180 -0
  352. package/dist/services/viewport.js.map +1 -0
  353. package/dist/services/waypoint-optimizer.d.ts +31 -0
  354. package/dist/services/waypoint-optimizer.d.ts.map +1 -0
  355. package/dist/services/waypoint-optimizer.js +235 -0
  356. package/dist/services/waypoint-optimizer.js.map +1 -0
  357. package/dist/types/aerial-view.d.ts +39 -0
  358. package/dist/types/aerial-view.d.ts.map +1 -0
  359. package/dist/types/aerial-view.js +2 -0
  360. package/dist/types/aerial-view.js.map +1 -0
  361. package/dist/types/batch-url.d.ts +31 -0
  362. package/dist/types/batch-url.d.ts.map +1 -1
  363. package/dist/types/categories.d.ts +20 -4
  364. package/dist/types/categories.d.ts.map +1 -1
  365. package/dist/types/common.d.ts +192 -24
  366. package/dist/types/common.d.ts.map +1 -1
  367. package/dist/types/common.js +1 -1
  368. package/dist/types/common.js.map +1 -1
  369. package/dist/types/directions.d.ts +217 -3
  370. package/dist/types/directions.d.ts.map +1 -1
  371. package/dist/types/dx.d.ts +69 -11
  372. package/dist/types/dx.d.ts.map +1 -1
  373. package/dist/types/geocode.d.ts +61 -3
  374. package/dist/types/geocode.d.ts.map +1 -1
  375. package/dist/types/grid-search.d.ts +66 -0
  376. package/dist/types/grid-search.d.ts.map +1 -0
  377. package/dist/types/grid-search.js +2 -0
  378. package/dist/types/grid-search.js.map +1 -0
  379. package/dist/types/hooks.d.ts +3 -3
  380. package/dist/types/hooks.d.ts.map +1 -1
  381. package/dist/types/links.d.ts +3 -6
  382. package/dist/types/links.d.ts.map +1 -1
  383. package/dist/types/lists.d.ts +68 -3
  384. package/dist/types/lists.d.ts.map +1 -1
  385. package/dist/types/map-3d.d.ts +126 -0
  386. package/dist/types/map-3d.d.ts.map +1 -0
  387. package/dist/types/map-3d.js +2 -0
  388. package/dist/types/map-3d.js.map +1 -0
  389. package/dist/types/map-earth.d.ts +34 -0
  390. package/dist/types/map-earth.d.ts.map +1 -0
  391. package/dist/types/map-earth.js +2 -0
  392. package/dist/types/map-earth.js.map +1 -0
  393. package/dist/types/map-layers.d.ts +63 -0
  394. package/dist/types/map-layers.d.ts.map +1 -0
  395. package/dist/types/map-layers.js +2 -0
  396. package/dist/types/map-layers.js.map +1 -0
  397. package/dist/types/mobility.d.ts +121 -0
  398. package/dist/types/mobility.d.ts.map +1 -0
  399. package/dist/types/mobility.js +3 -0
  400. package/dist/types/mobility.js.map +1 -0
  401. package/dist/types/panorama.d.ts +123 -0
  402. package/dist/types/panorama.d.ts.map +1 -1
  403. package/dist/types/photos.d.ts +12 -0
  404. package/dist/types/photos.d.ts.map +1 -1
  405. package/dist/types/photos.js +2 -1
  406. package/dist/types/photos.js.map +1 -1
  407. package/dist/types/place-attributes.d.ts +15 -0
  408. package/dist/types/place-attributes.d.ts.map +1 -0
  409. package/dist/types/place-attributes.js +2 -0
  410. package/dist/types/place-attributes.js.map +1 -0
  411. package/dist/types/place-extended.d.ts +406 -0
  412. package/dist/types/place-extended.d.ts.map +1 -0
  413. package/dist/types/place-extended.js +18 -0
  414. package/dist/types/place-extended.js.map +1 -0
  415. package/dist/types/protobuf.d.ts +1 -1
  416. package/dist/types/protobuf.js +1 -1
  417. package/dist/types/reviews.d.ts +28 -1
  418. package/dist/types/reviews.d.ts.map +1 -1
  419. package/dist/types/reviews.js.map +1 -1
  420. package/dist/types/route-optimization.d.ts +56 -0
  421. package/dist/types/route-optimization.d.ts.map +1 -0
  422. package/dist/types/route-optimization.js +2 -0
  423. package/dist/types/route-optimization.js.map +1 -0
  424. package/dist/types/search-along-route.d.ts +49 -0
  425. package/dist/types/search-along-route.d.ts.map +1 -0
  426. package/dist/types/search-along-route.js +2 -0
  427. package/dist/types/search-along-route.js.map +1 -0
  428. package/dist/types/search-filters.d.ts +1 -1
  429. package/dist/types/search-filters.js +1 -1
  430. package/dist/types/suggest.d.ts +23 -2
  431. package/dist/types/suggest.d.ts.map +1 -1
  432. package/dist/types/tiles.d.ts +40 -0
  433. package/dist/types/tiles.d.ts.map +1 -1
  434. package/dist/types/traffic.d.ts +58 -1
  435. package/dist/types/traffic.d.ts.map +1 -1
  436. package/dist/types/transit.d.ts +160 -1
  437. package/dist/types/transit.d.ts.map +1 -1
  438. package/dist/types/transit.js +0 -1
  439. package/dist/types/transit.js.map +1 -1
  440. package/dist/types/viewport.d.ts +159 -0
  441. package/dist/types/viewport.d.ts.map +1 -0
  442. package/dist/types/viewport.js +3 -0
  443. package/dist/types/viewport.js.map +1 -0
  444. package/dist/utils/async.d.ts +44 -0
  445. package/dist/utils/async.d.ts.map +1 -0
  446. package/dist/utils/async.js +132 -0
  447. package/dist/utils/async.js.map +1 -0
  448. package/dist/utils/encoded-polyline.d.ts +43 -0
  449. package/dist/utils/encoded-polyline.d.ts.map +1 -1
  450. package/dist/utils/encoded-polyline.js +71 -0
  451. package/dist/utils/encoded-polyline.js.map +1 -1
  452. package/dist/utils/env.d.ts +6 -0
  453. package/dist/utils/env.d.ts.map +1 -0
  454. package/dist/utils/{load-env.js → env.js} +32 -7
  455. package/dist/utils/env.js.map +1 -0
  456. package/dist/utils/geo.d.ts +12 -0
  457. package/dist/utils/geo.d.ts.map +1 -1
  458. package/dist/utils/geo.js +20 -0
  459. package/dist/utils/geo.js.map +1 -1
  460. package/dist/utils/hooks.d.ts +2 -3
  461. package/dist/utils/hooks.d.ts.map +1 -1
  462. package/dist/utils/hooks.js +1 -1
  463. package/dist/utils/hooks.js.map +1 -1
  464. package/dist/utils/ids.d.ts +1 -0
  465. package/dist/utils/ids.d.ts.map +1 -1
  466. package/dist/utils/ids.js +10 -0
  467. package/dist/utils/ids.js.map +1 -1
  468. package/dist/utils/net.d.ts +46 -0
  469. package/dist/utils/net.d.ts.map +1 -0
  470. package/dist/utils/net.js +150 -0
  471. package/dist/utils/net.js.map +1 -0
  472. package/dist/utils/payload.d.ts +22 -0
  473. package/dist/utils/payload.d.ts.map +1 -0
  474. package/dist/utils/{chunked-decoder.js → payload.js} +80 -2
  475. package/dist/utils/payload.js.map +1 -0
  476. package/dist/utils/place-ref.d.ts +40 -3
  477. package/dist/utils/place-ref.d.ts.map +1 -1
  478. package/dist/utils/place-ref.js +94 -2
  479. package/dist/utils/place-ref.js.map +1 -1
  480. package/package.json +8 -5
  481. package/dist/client/product-namespaces.d.ts +0 -30
  482. package/dist/client/product-namespaces.d.ts.map +0 -1
  483. package/dist/client/product-namespaces.js +0 -47
  484. package/dist/client/product-namespaces.js.map +0 -1
  485. package/dist/parsers/elevation-directions.d.ts +0 -18
  486. package/dist/parsers/elevation-directions.d.ts.map +0 -1
  487. package/dist/parsers/elevation-directions.js +0 -102
  488. package/dist/parsers/elevation-directions.js.map +0 -1
  489. package/dist/parsers/passiveassist.d.ts +0 -10
  490. package/dist/parsers/passiveassist.d.ts.map +0 -1
  491. package/dist/parsers/passiveassist.js +0 -61
  492. package/dist/parsers/passiveassist.js.map +0 -1
  493. package/dist/parsers/review-aggregates.d.ts +0 -7
  494. package/dist/parsers/review-aggregates.d.ts.map +0 -1
  495. package/dist/parsers/review-aggregates.js +0 -18
  496. package/dist/parsers/review-aggregates.js.map +0 -1
  497. package/dist/parsers/review-client-filters.d.ts +0 -8
  498. package/dist/parsers/review-client-filters.d.ts.map +0 -1
  499. package/dist/parsers/review-client-filters.js +0 -28
  500. package/dist/parsers/review-client-filters.js.map +0 -1
  501. package/dist/parsers/search-client-filters.d.ts +0 -7
  502. package/dist/parsers/search-client-filters.d.ts.map +0 -1
  503. package/dist/parsers/search-client-filters.js +0 -44
  504. package/dist/parsers/search-client-filters.js.map +0 -1
  505. package/dist/parsers/search-pagination.d.ts +0 -12
  506. package/dist/parsers/search-pagination.d.ts.map +0 -1
  507. package/dist/parsers/search-pagination.js +0 -34
  508. package/dist/parsers/search-pagination.js.map +0 -1
  509. package/dist/parsers/timezone-geocode.d.ts +0 -20
  510. package/dist/parsers/timezone-geocode.d.ts.map +0 -1
  511. package/dist/parsers/timezone-geocode.js +0 -96
  512. package/dist/parsers/timezone-geocode.js.map +0 -1
  513. package/dist/parsers/ugc-aggregates.d.ts +0 -9
  514. package/dist/parsers/ugc-aggregates.d.ts.map +0 -1
  515. package/dist/parsers/ugc-aggregates.js +0 -23
  516. package/dist/parsers/ugc-aggregates.js.map +0 -1
  517. package/dist/rpc/app-options.d.ts +0 -25
  518. package/dist/rpc/app-options.d.ts.map +0 -1
  519. package/dist/rpc/app-options.js.map +0 -1
  520. package/dist/rpc/batchexecute-args.d.ts +0 -30
  521. package/dist/rpc/batchexecute-args.d.ts.map +0 -1
  522. package/dist/rpc/batchexecute-args.js +0 -35
  523. package/dist/rpc/batchexecute-args.js.map +0 -1
  524. package/dist/rpc/boq-reviews.d.ts +0 -16
  525. package/dist/rpc/boq-reviews.d.ts.map +0 -1
  526. package/dist/rpc/boq-reviews.js +0 -45
  527. package/dist/rpc/boq-reviews.js.map +0 -1
  528. package/dist/rpc/descriptor-registry.d.ts.map +0 -1
  529. package/dist/rpc/descriptor-registry.js +0 -47
  530. package/dist/rpc/descriptor-registry.js.map +0 -1
  531. package/dist/rpc/lists-pb.d.ts +0 -20
  532. package/dist/rpc/lists-pb.d.ts.map +0 -1
  533. package/dist/rpc/lists-pb.js +0 -20
  534. package/dist/rpc/lists-pb.js.map +0 -1
  535. package/dist/rpc/nxa.d.ts +0 -13
  536. package/dist/rpc/nxa.d.ts.map +0 -1
  537. package/dist/rpc/nxa.js +0 -44
  538. package/dist/rpc/nxa.js.map +0 -1
  539. package/dist/rpc/passiveassist-pb.d.ts +0 -21
  540. package/dist/rpc/passiveassist-pb.d.ts.map +0 -1
  541. package/dist/rpc/passiveassist-pb.js +0 -24
  542. package/dist/rpc/passiveassist-pb.js.map +0 -1
  543. package/dist/rpc/photo-category-tokens.d.ts +0 -29
  544. package/dist/rpc/photo-category-tokens.d.ts.map +0 -1
  545. package/dist/rpc/photo-category-tokens.js +0 -97
  546. package/dist/rpc/photo-category-tokens.js.map +0 -1
  547. package/dist/rpc/reveal-pb.d.ts +0 -26
  548. package/dist/rpc/reveal-pb.d.ts.map +0 -1
  549. package/dist/rpc/reveal-pb.js +0 -32
  550. package/dist/rpc/reveal-pb.js.map +0 -1
  551. package/dist/rpc/suggest-pb.d.ts +0 -34
  552. package/dist/rpc/suggest-pb.d.ts.map +0 -1
  553. package/dist/rpc/suggest-pb.js +0 -42
  554. package/dist/rpc/suggest-pb.js.map +0 -1
  555. package/dist/rpc/tiles-pb.d.ts +0 -45
  556. package/dist/rpc/tiles-pb.d.ts.map +0 -1
  557. package/dist/rpc/tiles-pb.js +0 -71
  558. package/dist/rpc/tiles-pb.js.map +0 -1
  559. package/dist/services/batch-url.d.ts +0 -18
  560. package/dist/services/batch-url.d.ts.map +0 -1
  561. package/dist/services/batch-url.js +0 -30
  562. package/dist/services/batch-url.js.map +0 -1
  563. package/dist/services/categories.d.ts +0 -21
  564. package/dist/services/categories.d.ts.map +0 -1
  565. package/dist/services/categories.js +0 -43
  566. package/dist/services/categories.js.map +0 -1
  567. package/dist/services/passiveassist.d.ts +0 -21
  568. package/dist/services/passiveassist.d.ts.map +0 -1
  569. package/dist/services/passiveassist.js +0 -70
  570. package/dist/services/passiveassist.js.map +0 -1
  571. package/dist/services/reveal.d.ts +0 -15
  572. package/dist/services/reveal.d.ts.map +0 -1
  573. package/dist/services/reveal.js +0 -41
  574. package/dist/services/reveal.js.map +0 -1
  575. package/dist/services/suggest.d.ts +0 -12
  576. package/dist/services/suggest.d.ts.map +0 -1
  577. package/dist/services/suggest.js +0 -36
  578. package/dist/services/suggest.js.map +0 -1
  579. package/dist/services/timezone.d.ts +0 -19
  580. package/dist/services/timezone.d.ts.map +0 -1
  581. package/dist/services/timezone.js +0 -91
  582. package/dist/services/timezone.js.map +0 -1
  583. package/dist/services/ugc-aggregates.d.ts +0 -17
  584. package/dist/services/ugc-aggregates.d.ts.map +0 -1
  585. package/dist/services/ugc-aggregates.js +0 -30
  586. package/dist/services/ugc-aggregates.js.map +0 -1
  587. package/dist/types/distance-matrix.d.ts +0 -40
  588. package/dist/types/distance-matrix.d.ts.map +0 -1
  589. package/dist/types/distance-matrix.js +0 -2
  590. package/dist/types/distance-matrix.js.map +0 -1
  591. package/dist/types/elevation.d.ts +0 -59
  592. package/dist/types/elevation.d.ts.map +0 -1
  593. package/dist/types/elevation.js +0 -2
  594. package/dist/types/elevation.js.map +0 -1
  595. package/dist/types/passiveassist.d.ts +0 -50
  596. package/dist/types/passiveassist.d.ts.map +0 -1
  597. package/dist/types/passiveassist.js +0 -2
  598. package/dist/types/passiveassist.js.map +0 -1
  599. package/dist/types/reveal.d.ts +0 -46
  600. package/dist/types/reveal.d.ts.map +0 -1
  601. package/dist/types/reveal.js +0 -2
  602. package/dist/types/reveal.js.map +0 -1
  603. package/dist/types/timezone.d.ts +0 -36
  604. package/dist/types/timezone.d.ts.map +0 -1
  605. package/dist/types/timezone.js +0 -2
  606. package/dist/types/timezone.js.map +0 -1
  607. package/dist/types/ugc-aggregates.d.ts +0 -14
  608. package/dist/types/ugc-aggregates.d.ts.map +0 -1
  609. package/dist/types/ugc-aggregates.js +0 -2
  610. package/dist/types/ugc-aggregates.js.map +0 -1
  611. package/dist/utils/abort.d.ts +0 -7
  612. package/dist/utils/abort.d.ts.map +0 -1
  613. package/dist/utils/abort.js +0 -43
  614. package/dist/utils/abort.js.map +0 -1
  615. package/dist/utils/chunked-decoder.d.ts +0 -9
  616. package/dist/utils/chunked-decoder.d.ts.map +0 -1
  617. package/dist/utils/chunked-decoder.js.map +0 -1
  618. package/dist/utils/coords.d.ts +0 -24
  619. package/dist/utils/coords.d.ts.map +0 -1
  620. package/dist/utils/coords.js +0 -37
  621. package/dist/utils/coords.js.map +0 -1
  622. package/dist/utils/feature-id.d.ts +0 -2
  623. package/dist/utils/feature-id.d.ts.map +0 -1
  624. package/dist/utils/feature-id.js +0 -11
  625. package/dist/utils/feature-id.js.map +0 -1
  626. package/dist/utils/load-env.d.ts +0 -7
  627. package/dist/utils/load-env.d.ts.map +0 -1
  628. package/dist/utils/load-env.js.map +0 -1
  629. package/dist/utils/pooled.d.ts +0 -8
  630. package/dist/utils/pooled.d.ts.map +0 -1
  631. package/dist/utils/pooled.js +0 -27
  632. package/dist/utils/pooled.js.map +0 -1
  633. package/dist/utils/request-context.d.ts +0 -9
  634. package/dist/utils/request-context.d.ts.map +0 -1
  635. package/dist/utils/request-context.js +0 -12
  636. package/dist/utils/request-context.js.map +0 -1
  637. package/dist/utils/request-scheduler.d.ts +0 -28
  638. package/dist/utils/request-scheduler.d.ts.map +0 -1
  639. package/dist/utils/request-scheduler.js +0 -58
  640. package/dist/utils/request-scheduler.js.map +0 -1
  641. package/dist/utils/response-parser.d.ts +0 -7
  642. package/dist/utils/response-parser.d.ts.map +0 -1
  643. package/dist/utils/response-parser.js +0 -50
  644. package/dist/utils/response-parser.js.map +0 -1
  645. package/dist/utils/retry-backoff.d.ts +0 -5
  646. package/dist/utils/retry-backoff.d.ts.map +0 -1
  647. package/dist/utils/retry-backoff.js +0 -23
  648. package/dist/utils/retry-backoff.js.map +0 -1
  649. package/dist/utils/safe-get.d.ts +0 -6
  650. package/dist/utils/safe-get.d.ts.map +0 -1
  651. package/dist/utils/safe-get.js +0 -29
  652. package/dist/utils/safe-get.js.map +0 -1
  653. package/dist/utils/throttle-detection.d.ts +0 -17
  654. package/dist/utils/throttle-detection.d.ts.map +0 -1
  655. package/dist/utils/throttle-detection.js +0 -71
  656. package/dist/utils/throttle-detection.js.map +0 -1
  657. package/dist/utils/ttl-cache.d.ts +0 -17
  658. package/dist/utils/ttl-cache.d.ts.map +0 -1
  659. package/dist/utils/ttl-cache.js +0 -43
  660. package/dist/utils/ttl-cache.js.map +0 -1
  661. /package/{assets → .github/assets}/banner.png +0 -0
@@ -1,7 +1,14 @@
1
- import { GMapsParseError } from '../types/common.js';
2
- import { readPngDimensions, unwrapTilePng } from '../parsers/tiles.js';
3
- import { buildIconUrl, buildMapTileUrl, DEFAULT_POI_ICON, } from '../rpc/tiles-pb.js';
1
+ import { GMapsEmptyPayloadError, GMapsParseError } from '../types/common.js';
2
+ import { readJpegDimensions, readPngDimensions, unwrapTileImage } from '../parsers/tiles.js';
3
+ import { DEFAULT_POI_ICON, buildIconUrl, buildProtoTileUrl, buildOverlayTileUrl } from '../rpc/tile-builders.js';
4
+ import { buildEarthTileUrl, buildTerrainTileUrl, lngLatToTile } from '../rpc/tile-builders.js';
4
5
  import { webMercatorTile } from '../utils/geo.js';
6
+ /**
7
+ * Google answers a valid-but-blank ~220-byte placeholder PNG for overlay
8
+ * tiles that carry no data (contours over flat ground, layers outside their
9
+ * zoom band). Anything below this threshold carries no usable imagery.
10
+ */
11
+ const EMPTY_TILE_BYTES = 512;
5
12
  export class TilesService {
6
13
  http;
7
14
  constructor(http, _config) {
@@ -9,11 +16,11 @@ export class TilesService {
9
16
  }
10
17
  /** Fetch a basemap tile by Web Mercator z/x/y indices. */
11
18
  async getTile(options) {
12
- const url = buildMapTileUrl(options);
19
+ const url = buildProtoTileUrl(options);
13
20
  const { bytes: envelope, contentType } = await this.http.getBytes(url, {
14
21
  referer: 'https://www.google.com/maps/',
15
22
  includeOrigin: true,
16
- minBytes: 100,
23
+ allowShortBody: true,
17
24
  });
18
25
  return this.decodeTile(envelope, contentType, {
19
26
  z: options.z,
@@ -27,9 +34,86 @@ export class TilesService {
27
34
  const { x, y } = webMercatorTile(lat, lng, zoom);
28
35
  return this.getTile({ ...rest, z: zoom, x, y });
29
36
  }
37
+ /** Fetch a specific map layer tile (satellite, hybrid, terrain, standard). */
38
+ async getLayer(options) {
39
+ let url;
40
+ if (options.layer === 'standard') {
41
+ url = buildProtoTileUrl({ z: options.z, x: options.x, y: options.y });
42
+ }
43
+ else if (options.layer === 'terrain') {
44
+ url = buildTerrainTileUrl({
45
+ x: options.x,
46
+ y: options.y,
47
+ zoom: options.z,
48
+ scale: options.scale,
49
+ });
50
+ }
51
+ else {
52
+ // Satellite and hybrid come from mt.google.com, selected with `lyrs`
53
+ // (`s` = imagery, `y` = imagery plus roads and labels). A `style` param
54
+ // is ignored by that host and silently yields the roadmap tile.
55
+ url = buildEarthTileUrl({
56
+ x: options.x,
57
+ y: options.y,
58
+ zoom: options.z,
59
+ imageType: options.layer === 'hybrid' ? 'satellite' : 'aerial',
60
+ scale: options.scale,
61
+ });
62
+ }
63
+ const { bytes: envelope, contentType } = await this.http.getBytes(url, {
64
+ referer: 'https://www.google.com/maps/',
65
+ includeOrigin: true,
66
+ allowShortBody: true,
67
+ });
68
+ return this.decodeTile(envelope, contentType, {
69
+ z: options.z,
70
+ x: options.x,
71
+ y: options.y,
72
+ });
73
+ }
30
74
  /** Build a basemap tile URL (no network I/O). */
31
75
  buildTileUrl(options) {
32
- return buildMapTileUrl(options);
76
+ return buildProtoTileUrl(options);
77
+ }
78
+ /**
79
+ * Fetch a named overlay tile by Web Mercator indices.
80
+ *
81
+ * Layers are decoded from the Maps JS vt layer descriptors and answer
82
+ * anonymous raster tiles. Hillshade covers most land from z8 up; contours
83
+ * publish in the z13–15 band; the air quality heatmap spans z5–15 with
84
+ * city-level detail. Dataless cells (ocean for contours, rural AQ, layers
85
+ * outside their band) throw {@link GMapsEmptyPayloadError} rather than
86
+ * returning the blank placeholder Google serves.
87
+ */
88
+ async getOverlay(options) {
89
+ const layer = options.layer ?? 'hillshade';
90
+ const url = buildOverlayTileUrl({
91
+ z: options.z,
92
+ x: options.x,
93
+ y: options.y,
94
+ layer,
95
+ });
96
+ const { bytes: envelope, contentType } = await this.http.getBytes(url, {
97
+ referer: 'https://www.google.com/maps/',
98
+ includeOrigin: true,
99
+ allowShortBody: true,
100
+ });
101
+ const result = this.decodeTile(envelope, contentType, {
102
+ z: options.z,
103
+ x: options.x,
104
+ y: options.y,
105
+ });
106
+ if (result.bytes.length < EMPTY_TILE_BYTES) {
107
+ throw new GMapsEmptyPayloadError(`The ${layer} layer has no data at z${options.z} (tile ${options.x},${options.y}). ` +
108
+ 'Observed bands — hillshade: z8+, contours: z13–15, airQualityHeatmap: z5–15.');
109
+ }
110
+ return result;
111
+ }
112
+ /** Fetch an overlay tile by lat/lng (indices computed internally). */
113
+ async getOverlayByLatLng(options) {
114
+ const { lat, lng, zoom, ...rest } = options;
115
+ const { x, y } = webMercatorTile(lat, lng, zoom);
116
+ return this.getOverlay({ ...rest, z: zoom, x, y });
33
117
  }
34
118
  /** Build a POI icon URL (no network I/O). */
35
119
  buildIconUrl(options) {
@@ -57,21 +141,96 @@ export class TilesService {
57
141
  };
58
142
  }
59
143
  decodeTile(envelope, contentType, coordinates) {
60
- const png = unwrapTilePng(envelope);
61
- if (!png) {
62
- throw new GMapsParseError('Tile response does not contain a PNG image');
144
+ const image = unwrapTileImage(envelope);
145
+ if (!image) {
146
+ throw new GMapsParseError(`Tile response contains no decodable PNG or JPEG image (content-type: ${contentType})`);
63
147
  }
64
- const dimensions = readPngDimensions(png);
148
+ const dimensions = image.mimeType === 'image/png'
149
+ ? readPngDimensions(image.bytes)
150
+ : readJpegDimensions(image.bytes);
65
151
  if (!dimensions) {
66
- throw new GMapsParseError('Extracted tile PNG has invalid IHDR');
152
+ throw new GMapsParseError('Extracted tile image has no readable dimensions');
67
153
  }
68
154
  return {
69
- bytes: png,
70
- contentType,
155
+ bytes: image.bytes,
156
+ contentType: image.mimeType,
71
157
  width: dimensions.width,
72
158
  height: dimensions.height,
73
159
  coordinates,
74
160
  };
75
161
  }
76
162
  }
163
+ /** Max zoom mt.google.com serves imagery at. */
164
+ const MAX_IMAGERY_ZOOM = 21;
165
+ /** Coarsest zoom at which the whole bounding box still falls inside one tile. */
166
+ function zoomFittingOneTile(bounds) {
167
+ for (let zoom = MAX_IMAGERY_ZOOM; zoom >= 0; zoom--) {
168
+ const ne = lngLatToTile(bounds.ne.lng, bounds.ne.lat, zoom);
169
+ const sw = lngLatToTile(bounds.sw.lng, bounds.sw.lat, zoom);
170
+ if (ne.x === sw.x && ne.y === sw.y)
171
+ return zoom;
172
+ }
173
+ return 0;
174
+ }
175
+ /**
176
+ * Satellite / aerial imagery.
177
+ *
178
+ * Imagery is served from the `mt.google.com/vt` tile host (layer `s` for plain
179
+ * satellite, `y` for satellite with roads and labels) — the same host the Maps
180
+ * web client uses. There is no public `earth.google.com` imagery API.
181
+ */
182
+ export class MapEarthService {
183
+ http;
184
+ constructor(http, _config) {
185
+ this.http = http;
186
+ }
187
+ /** Fetch one imagery tile. Returns JPEG bytes. */
188
+ async getTiles(options) {
189
+ const url = buildEarthTileUrl({
190
+ x: options.x,
191
+ y: options.y,
192
+ zoom: options.zoom,
193
+ imageType: options.imageryType === 'hybrid' ? 'satellite' : 'aerial',
194
+ scale: options.scale,
195
+ });
196
+ const { bytes, contentType } = await this.http.getBytes(url, {
197
+ referer: 'https://www.google.com/maps/',
198
+ includeOrigin: true,
199
+ allowShortBody: true,
200
+ });
201
+ const image = unwrapTileImage(bytes);
202
+ if (!image) {
203
+ throw new GMapsParseError(`Imagery tile response contains no decodable image (content-type: ${contentType})`);
204
+ }
205
+ return {
206
+ data: Buffer.from(image.bytes),
207
+ zoom: options.zoom,
208
+ x: options.x,
209
+ y: options.y,
210
+ // The tile host does not report a capture date; only Earth's own UI does.
211
+ captureDate: undefined,
212
+ };
213
+ }
214
+ /**
215
+ * Imagery covering a bounding box, as a single tile.
216
+ *
217
+ * Picks the deepest zoom whose tile still contains the whole box, so the box
218
+ * is always fully covered — a wide box therefore yields coarser imagery.
219
+ * Stitch several {@link getTiles} calls yourself when you need full detail.
220
+ */
221
+ async getImagery(options) {
222
+ const fitZoom = zoomFittingOneTile(options.bounds);
223
+ const detailCap = options.resolution === 'low' ? 12 : options.resolution === 'medium' ? 16 : MAX_IMAGERY_ZOOM;
224
+ const zoom = Math.min(fitZoom, detailCap);
225
+ const centerLat = (options.bounds.ne.lat + options.bounds.sw.lat) / 2;
226
+ const centerLng = (options.bounds.ne.lng + options.bounds.sw.lng) / 2;
227
+ const tile = lngLatToTile(centerLng, centerLat, zoom);
228
+ const result = await this.getTiles({ zoom, x: tile.x, y: tile.y });
229
+ return {
230
+ imagery: result.data,
231
+ resolution: options.resolution ?? 'high',
232
+ lastUpdated: new Date(),
233
+ };
234
+ }
235
+ }
77
236
  //# sourceMappingURL=tiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiles.js","sourceRoot":"","sources":["../../src/services/tiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tiles.js","sourceRoot":"","sources":["../../src/services/tiles.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,23 @@
1
1
  import { HttpClient } from '../client/http-client.js';
2
2
  import type { GMapsConfig } from '../types/common.js';
3
- import type { AreaTrafficReport, GetAreaTrafficOptions } from '../types/traffic.js';
3
+ import type { AreaTrafficReport, GetAreaTrafficOptions, TrafficIncident, TrafficIncidentsOptions } from '../types/traffic.js';
4
4
  export declare class TrafficService {
5
5
  private http;
6
6
  private config;
7
7
  constructor(http: HttpClient, config?: GMapsConfig);
8
8
  /** Fetch area traffic conditions for a viewport bounding box (batchexecute GetAreaTraffic). */
9
9
  getAreaTraffic(options: GetAreaTrafficOptions): Promise<AreaTrafficReport>;
10
+ /**
11
+ * Individual slowdowns inside a bounding box.
12
+ *
13
+ * Reads the incident list that `GetAreaTraffic` returns alongside the area
14
+ * summary — the same records Maps pins on the traffic layer. Each carries the
15
+ * road name, the delay, and the affected stretch as coordinates.
16
+ *
17
+ * Google publishes congestion incidents here; accidents and closures appear
18
+ * only when the feed has them.
19
+ */
20
+ getIncidents(options: TrafficIncidentsOptions): Promise<TrafficIncident[]>;
10
21
  private resolvePsi;
11
22
  }
12
23
  //# sourceMappingURL=traffic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traffic.d.ts","sourceRoot":"","sources":["../../src/services/traffic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIpF,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAKtD,+FAA+F;IACzF,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAkBlE,UAAU;CAYzB"}
1
+ {"version":3,"file":"traffic.d.ts","sourceRoot":"","sources":["../../src/services/traffic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAI7B,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAKtD,+FAA+F;IACzF,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBhF;;;;;;;;;OASG;IACG,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAkBlE,UAAU;CAYzB"}
@@ -1,8 +1,9 @@
1
1
  import { extractAreaTraffic } from '../parsers/traffic.js';
2
+ import { extractTrafficIncidents } from '../parsers/traffic.js';
2
3
  import { buildAreaTrafficArgs } from '../rpc/batch-request-builders.js';
3
4
  import { BATCH_SERVICES } from '../rpc/batch-services.js';
4
- import { createRpcClient } from '../rpc/batch-rpc.js';
5
- import { parseMapsPageTokens } from '../rpc/app-options.js';
5
+ import { createRpcClient, parseBatchPayload } from '../rpc/batch-rpc.js';
6
+ import { parseMapsPageTokens } from '../rpc/descriptors.js';
6
7
  import { cookiesToHeader } from '../auth/session.js';
7
8
  export class TrafficService {
8
9
  http;
@@ -24,6 +25,28 @@ export class TrafficService {
24
25
  }));
25
26
  return extractAreaTraffic(data);
26
27
  }
28
+ /**
29
+ * Individual slowdowns inside a bounding box.
30
+ *
31
+ * Reads the incident list that `GetAreaTraffic` returns alongside the area
32
+ * summary — the same records Maps pins on the traffic layer. Each carries the
33
+ * road name, the delay, and the affected stretch as coordinates.
34
+ *
35
+ * Google publishes congestion incidents here; accidents and closures appear
36
+ * only when the feed has them.
37
+ */
38
+ async getIncidents(options) {
39
+ const rpc = await createRpcClient(this.http, this.config);
40
+ const psi = options.psi ?? (await this.resolvePsi());
41
+ const data = await rpc.call(BATCH_SERVICES.AREA_TRAFFIC, buildAreaTrafficArgs({
42
+ psi,
43
+ swLat: options.swLat,
44
+ swLng: options.swLng,
45
+ neLat: options.neLat,
46
+ neLng: options.neLng,
47
+ }));
48
+ return extractTrafficIncidents(parseBatchPayload(data));
49
+ }
27
50
  async resolvePsi() {
28
51
  const html = await fetch('https://www.google.com/maps/place/@12.9168,77.6450,14z', {
29
52
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"traffic.js","sourceRoot":"","sources":["../../src/services/traffic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,cAAc;IACjB,IAAI,CAAa;IACjB,MAAM,CAAc;IAE5B,YAAY,IAAgB,EAAE,SAAsB,EAAE;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,cAAc,CAAC,YAAY,EAC3B,oBAAoB,CAAC;YACnB,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CACH,CAAC;QAEF,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,wDAAwD,EAAE;YACjF,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjD,MAAM,EAAE,WAAW;aACpB;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"traffic.js","sourceRoot":"","sources":["../../src/services/traffic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,cAAc;IACjB,IAAI,CAAa;IACjB,MAAM,CAAc;IAE5B,YAAY,IAAgB,EAAE,SAAsB,EAAE;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,cAAc,CAAC,YAAY,EAC3B,oBAAoB,CAAC;YACnB,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CACH,CAAC;QAEF,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgC;QACjD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,cAAc,CAAC,YAAY,EAC3B,oBAAoB,CAAC;YACnB,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CACH,CAAC;QAEF,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,wDAAwD,EAAE;YACjF,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjD,MAAM,EAAE,WAAW;aACpB;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;IACjD,CAAC;CACF"}
@@ -1,22 +1,39 @@
1
1
  import { HttpClient } from '../client/http-client.js';
2
2
  import type { GMapsConfig } from '../types/common.js';
3
- import type { GetStationDeparturesOptions, ListTransitLinesOptions, TransitStationBoard } from '../types/transit.js';
4
- import type { MapsPreviewPlaceResponse } from '../types/protobuf.js';
3
+ import type { GetStationDeparturesOptions, ListTransitLinesOptions, TransitRouteOptions, TransitRouteResult, TransitStationBoard } from '../types/transit.js';
5
4
  export declare class TransitService {
6
5
  private http;
7
6
  private config;
8
7
  private places;
8
+ private directions;
9
+ private geocode;
9
10
  constructor(http: HttpClient, config?: GMapsConfig);
10
11
  /**
11
12
  * Live departure board for a transit station (place preview placeData[62]).
12
13
  * Requires a rich/detail preview with coordinates for full schedule rows.
13
14
  */
14
15
  getStationDepartures(options: GetStationDeparturesOptions): Promise<TransitStationBoard>;
16
+ /**
17
+ * Full transit routing from origin to destination.
18
+ * Returns all transit routes with transfers, stops, and line information.
19
+ */
20
+ /**
21
+ * Transit itineraries between two points.
22
+ *
23
+ * Backed by `/maps/preview/directions` in transit mode. The request carries
24
+ * the page session token, without which Google returns travel-time chips and
25
+ * no routes at all. Returns every itinerary Google offers, each with its legs,
26
+ * lines, stops, fare and service alerts.
27
+ *
28
+ * String endpoints are geocoded first.
29
+ */
30
+ getRoute(options: TransitRouteOptions): Promise<TransitRouteResult>;
31
+ /** Coordinates for an endpoint, geocoding a string when needed. */
32
+ private resolveEndpoint;
15
33
  /**
16
34
  * Probe ListTransitLines batchexecute (currently returns error [3] for anonymous callers).
17
35
  * Exposed for research scripts; prefer getStationDepartures for live schedules.
18
36
  */
19
37
  probeListTransitLines(options: ListTransitLinesOptions): Promise<unknown>;
20
38
  }
21
- export declare function extractTransitBoardFromPreview(data: MapsPreviewPlaceResponse): TransitStationBoard | undefined;
22
39
  //# sourceMappingURL=transit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transit.d.ts","sourceRoot":"","sources":["../../src/services/transit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,wBAAwB,EAAiB,MAAM,sBAAsB,CAAC;AAGpF,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAgB;gBAElB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAMtD;;;OAGG;IACG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsB9F;;;OAGG;IACG,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBhF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,wBAAwB,GAAG,mBAAmB,GAAG,SAAS,CAI9G"}
1
+ {"version":3,"file":"transit.d.ts","sourceRoot":"","sources":["../../src/services/transit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAUtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EAEvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAkB7B,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAQtD;;;OAGG;IACG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsB9F;;;OAGG;IACH;;;;;;;;;OASG;IACG,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4BzE,mEAAmE;YACrD,eAAe;IAa7B;;;OAGG;IACG,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBhF"}
@@ -2,15 +2,35 @@ import { extractTransitStationBoard } from '../parsers/transit.js';
2
2
  import { buildListTransitLinesArgs } from '../rpc/batch-request-builders.js';
3
3
  import { BATCH_SERVICES } from '../rpc/batch-services.js';
4
4
  import { createRpcClient, isBatchErrorCode, parseBatchPayload } from '../rpc/batch-rpc.js';
5
+ import { buildDirectionsUrls } from '../rpc/pb-builders.js';
6
+ import { extractTransitRoutes } from '../parsers/transit.js';
7
+ import { DirectionsService } from './directions.js';
8
+ import { GeocodeService } from './geocode.js';
9
+ import { GMapsError } from '../types/common.js';
5
10
  import { PlacesService } from './places.js';
11
+ /** Map the transit preference list onto the single pb routing-preference slot. */
12
+ function toRoutingPreference(preferences) {
13
+ if (!preferences?.length)
14
+ return undefined;
15
+ if (preferences.includes('fewerTransfers'))
16
+ return 'fewer_transfers';
17
+ if (preferences.includes('avoidSurface') || preferences.includes('preferRail')) {
18
+ return 'less_walking';
19
+ }
20
+ return undefined;
21
+ }
6
22
  export class TransitService {
7
23
  http;
8
24
  config;
9
25
  places;
26
+ directions;
27
+ geocode;
10
28
  constructor(http, config = {}) {
11
29
  this.http = http;
12
30
  this.config = config;
13
31
  this.places = new PlacesService(http, config);
32
+ this.directions = new DirectionsService(http, config);
33
+ this.geocode = new GeocodeService(http, config);
14
34
  }
15
35
  /**
16
36
  * Live departure board for a transit station (place preview placeData[62]).
@@ -34,6 +54,54 @@ export class TransitService {
34
54
  }
35
55
  return board;
36
56
  }
57
+ /**
58
+ * Full transit routing from origin to destination.
59
+ * Returns all transit routes with transfers, stops, and line information.
60
+ */
61
+ /**
62
+ * Transit itineraries between two points.
63
+ *
64
+ * Backed by `/maps/preview/directions` in transit mode. The request carries
65
+ * the page session token, without which Google returns travel-time chips and
66
+ * no routes at all. Returns every itinerary Google offers, each with its legs,
67
+ * lines, stops, fare and service alerts.
68
+ *
69
+ * String endpoints are geocoded first.
70
+ */
71
+ async getRoute(options) {
72
+ const start = performance.now();
73
+ const origin = await this.resolveEndpoint(options.origin);
74
+ const destination = await this.resolveEndpoint(options.destination);
75
+ const sessionToken = await this.directions.sessionToken(origin);
76
+ const [url] = buildDirectionsUrls({
77
+ origin,
78
+ destination,
79
+ mode: 'transit',
80
+ hl: this.config.hl ?? 'en',
81
+ gl: this.config.gl ?? 'us',
82
+ departureTime: options.departureTime ? Math.floor(options.departureTime.getTime() / 1000) : undefined,
83
+ arrivalTime: options.arrivalTime ? Math.floor(options.arrivalTime.getTime() / 1000) : undefined,
84
+ transitModes: options.modes,
85
+ transitRoutingPreference: toRoutingPreference(options.preferences),
86
+ sessionToken,
87
+ });
88
+ const data = (await this.http.get(url, {
89
+ referer: 'https://www.google.com/maps/',
90
+ includeOrigin: true,
91
+ }));
92
+ return { routes: extractTransitRoutes(data), timingMs: performance.now() - start };
93
+ }
94
+ /** Coordinates for an endpoint, geocoding a string when needed. */
95
+ async resolveEndpoint(value) {
96
+ if (typeof value !== 'string')
97
+ return value;
98
+ const response = await this.geocode.geocode(value);
99
+ const hit = response.result ?? response.alternatives[0];
100
+ if (!hit) {
101
+ throw new GMapsError(`Could not resolve transit endpoint: ${value}`);
102
+ }
103
+ return { lat: hit.lat, lng: hit.lng };
104
+ }
37
105
  /**
38
106
  * Probe ListTransitLines batchexecute (currently returns error [3] for anonymous callers).
39
107
  * Exposed for research scripts; prefer getStationDepartures for live schedules.
@@ -53,7 +121,7 @@ export class TransitService {
53
121
  return parsed;
54
122
  }
55
123
  }
56
- export function extractTransitBoardFromPreview(data) {
124
+ function extractTransitBoardFromPreview(data) {
57
125
  const placeData = data[6];
58
126
  if (!placeData)
59
127
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"transit.js","sourceRoot":"","sources":["../../src/services/transit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQ3F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,cAAc;IACjB,IAAI,CAAa;IACjB,MAAM,CAAc;IACpB,MAAM,CAAgB;IAE9B,YAAY,IAAgB,EAAE,SAAsB,EAAE;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAoC;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC7B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAA8B,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAgC;QAC1D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,cAAc,CAAC,kBAAkB,EACjC,yBAAyB,CAAC;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,UAAU,8BAA8B,CAAC,IAA8B;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAA8B,CAAC;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"transit.js","sourceRoot":"","sources":["../../src/services/transit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { HttpClient } from '../client/http-client.js';
2
+ import { type GMapsConfig } from '../types/common.js';
3
+ import type { AdminRegion, GeoArea, NearbyAreasOptions, PassiveAssistOptions, PassiveAssistResult, RevealPlaceOptions, RevealPlaceResult } from '../types/viewport.js';
4
+ /**
5
+ * Viewport-surface services: passive-assist chips, neighbourhood context, click reveal.
6
+ */
7
+ export declare class PassiveAssistService {
8
+ private http;
9
+ private hl;
10
+ private gl;
11
+ constructor(http: HttpClient, config: GMapsConfig);
12
+ /**
13
+ * Viewport POI chips for the map camera (weather, events, neighbourhood labels).
14
+ *
15
+ * Needs an in-page viewport psi: bootstrap kEI / fetchSessionPsi tokens return
16
+ * the ~212 B cache-metadata stub, and only a token from a live viewport
17
+ * passiveassist request yields chips. Such a token is portable — it replays over
18
+ * plain Node fetch and stays valid for at least a few minutes — but minting one
19
+ * requires a browser, so pass `psi` yourself or supply a `psiProvider`. This
20
+ * service will not start a browser on your behalf.
21
+ */
22
+ getViewportChips(options: PassiveAssistOptions): Promise<PassiveAssistResult>;
23
+ }
24
+ /**
25
+ * Administrative context for a coordinate.
26
+ *
27
+ * Backed by reverse geocode — the only anonymous Maps surface that names the
28
+ * region hierarchy containing a point.
29
+ */
30
+ export declare class LocationContextService {
31
+ private geocode;
32
+ constructor(http: HttpClient, config: GMapsConfig);
33
+ /**
34
+ * Not available.
35
+ *
36
+ * Maps renders neighbourhood and district polygons from vector tiles rather
37
+ * than any queryable surface, and place search returns businesses instead of
38
+ * areas. Use {@link getRegions} for the administrative hierarchy.
39
+ *
40
+ * @throws {GMapsError} always
41
+ */
42
+ getNearby(_options: NearbyAreasOptions): Promise<GeoArea[]>;
43
+ /**
44
+ * Not available — alias of {@link getNearby}.
45
+ *
46
+ * @throws {GMapsError} always
47
+ */
48
+ getAreas(coordinates: {
49
+ lat: number;
50
+ lng: number;
51
+ }): Promise<GeoArea[]>;
52
+ /**
53
+ * Administrative regions containing a point, most specific first
54
+ * (e.g. `Bengaluru` → `Karnataka` → `India`).
55
+ *
56
+ * Reverse geocode names the hierarchy but reports no polygons, so
57
+ * {@link AdminRegion.bounds} is absent.
58
+ */
59
+ getRegions(coordinates: {
60
+ lat: number;
61
+ lng: number;
62
+ }): Promise<AdminRegion[]>;
63
+ private regionsFor;
64
+ }
65
+ export declare class RevealService {
66
+ private http;
67
+ private hl;
68
+ private gl;
69
+ constructor(http: HttpClient, config: GMapsConfig);
70
+ /**
71
+ * Reveal a hidden POI at a map click location.
72
+ * Requires a feature id (`ftid`) from search/suggest or place preview.
73
+ */
74
+ revealAtClick(options: RevealPlaceOptions): Promise<RevealPlaceResult>;
75
+ }
76
+ //# sourceMappingURL=viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../src/services/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMvK;;GAEG;AAEH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;gBAEP,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAMjD;;;;;;;;;OASG;IACG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAoDpF;AAQD;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAIjD;;;;;;;;OAQG;IACG,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOjE;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI7E;;;;;;OAMG;IACG,UAAU,CAAC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAarE,UAAU;CASzB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;gBAEP,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAMjD;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA2B7E"}