googlemaps-kit 0.1.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 (525) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +249 -0
  3. package/dist/auth/auth-status.d.ts +30 -0
  4. package/dist/auth/auth-status.d.ts.map +1 -0
  5. package/dist/auth/auth-status.js +169 -0
  6. package/dist/auth/auth-status.js.map +1 -0
  7. package/dist/auth/google-auth.d.ts +9 -0
  8. package/dist/auth/google-auth.d.ts.map +1 -0
  9. package/dist/auth/google-auth.js +40 -0
  10. package/dist/auth/google-auth.js.map +1 -0
  11. package/dist/auth/maps-tokens.d.ts +6 -0
  12. package/dist/auth/maps-tokens.d.ts.map +1 -0
  13. package/dist/auth/maps-tokens.js +18 -0
  14. package/dist/auth/maps-tokens.js.map +1 -0
  15. package/dist/auth/session.d.ts +28 -0
  16. package/dist/auth/session.d.ts.map +1 -0
  17. package/dist/auth/session.js +104 -0
  18. package/dist/auth/session.js.map +1 -0
  19. package/dist/client/gmaps-client.d.ts +92 -0
  20. package/dist/client/gmaps-client.d.ts.map +1 -0
  21. package/dist/client/gmaps-client.js +254 -0
  22. package/dist/client/gmaps-client.js.map +1 -0
  23. package/dist/client/http-client.d.ts +91 -0
  24. package/dist/client/http-client.d.ts.map +1 -0
  25. package/dist/client/http-client.js +393 -0
  26. package/dist/client/http-client.js.map +1 -0
  27. package/dist/index.d.ts +64 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +36 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/internal.d.ts +140 -0
  32. package/dist/internal.d.ts.map +1 -0
  33. package/dist/internal.js +97 -0
  34. package/dist/internal.js.map +1 -0
  35. package/dist/known-surfaces.d.ts +280 -0
  36. package/dist/known-surfaces.d.ts.map +1 -0
  37. package/dist/known-surfaces.js +276 -0
  38. package/dist/known-surfaces.js.map +1 -0
  39. package/dist/parsers/batch-url.d.ts +13 -0
  40. package/dist/parsers/batch-url.d.ts.map +1 -0
  41. package/dist/parsers/batch-url.js +42 -0
  42. package/dist/parsers/batch-url.js.map +1 -0
  43. package/dist/parsers/boq-reviews.d.ts +8 -0
  44. package/dist/parsers/boq-reviews.d.ts.map +1 -0
  45. package/dist/parsers/boq-reviews.js +254 -0
  46. package/dist/parsers/boq-reviews.js.map +1 -0
  47. package/dist/parsers/categories.d.ts +14 -0
  48. package/dist/parsers/categories.d.ts.map +1 -0
  49. package/dist/parsers/categories.js +128 -0
  50. package/dist/parsers/categories.js.map +1 -0
  51. package/dist/parsers/directions.d.ts +6 -0
  52. package/dist/parsers/directions.d.ts.map +1 -0
  53. package/dist/parsers/directions.js +388 -0
  54. package/dist/parsers/directions.js.map +1 -0
  55. package/dist/parsers/elevation-directions.d.ts +18 -0
  56. package/dist/parsers/elevation-directions.d.ts.map +1 -0
  57. package/dist/parsers/elevation-directions.js +102 -0
  58. package/dist/parsers/elevation-directions.js.map +1 -0
  59. package/dist/parsers/geocode.d.ts +11 -0
  60. package/dist/parsers/geocode.d.ts.map +1 -0
  61. package/dist/parsers/geocode.js +104 -0
  62. package/dist/parsers/geocode.js.map +1 -0
  63. package/dist/parsers/knowledge.d.ts +13 -0
  64. package/dist/parsers/knowledge.d.ts.map +1 -0
  65. package/dist/parsers/knowledge.js +93 -0
  66. package/dist/parsers/knowledge.js.map +1 -0
  67. package/dist/parsers/lists.d.ts +23 -0
  68. package/dist/parsers/lists.d.ts.map +1 -0
  69. package/dist/parsers/lists.js +219 -0
  70. package/dist/parsers/lists.js.map +1 -0
  71. package/dist/parsers/local-posts.d.ts +12 -0
  72. package/dist/parsers/local-posts.d.ts.map +1 -0
  73. package/dist/parsers/local-posts.js +112 -0
  74. package/dist/parsers/local-posts.js.map +1 -0
  75. package/dist/parsers/maps-url.d.ts +15 -0
  76. package/dist/parsers/maps-url.d.ts.map +1 -0
  77. package/dist/parsers/maps-url.js +326 -0
  78. package/dist/parsers/maps-url.js.map +1 -0
  79. package/dist/parsers/panorama.d.ts +24 -0
  80. package/dist/parsers/panorama.d.ts.map +1 -0
  81. package/dist/parsers/panorama.js +161 -0
  82. package/dist/parsers/panorama.js.map +1 -0
  83. package/dist/parsers/passiveassist.d.ts +10 -0
  84. package/dist/parsers/passiveassist.d.ts.map +1 -0
  85. package/dist/parsers/passiveassist.js +61 -0
  86. package/dist/parsers/passiveassist.js.map +1 -0
  87. package/dist/parsers/photos.d.ts +21 -0
  88. package/dist/parsers/photos.d.ts.map +1 -0
  89. package/dist/parsers/photos.js +287 -0
  90. package/dist/parsers/photos.js.map +1 -0
  91. package/dist/parsers/place-attributes.d.ts +25 -0
  92. package/dist/parsers/place-attributes.d.ts.map +1 -0
  93. package/dist/parsers/place-attributes.js +266 -0
  94. package/dist/parsers/place-attributes.js.map +1 -0
  95. package/dist/parsers/place.d.ts +9 -0
  96. package/dist/parsers/place.d.ts.map +1 -0
  97. package/dist/parsers/place.js +291 -0
  98. package/dist/parsers/place.js.map +1 -0
  99. package/dist/parsers/reveal.d.ts +5 -0
  100. package/dist/parsers/reveal.d.ts.map +1 -0
  101. package/dist/parsers/reveal.js +99 -0
  102. package/dist/parsers/reveal.js.map +1 -0
  103. package/dist/parsers/review-aggregates.d.ts +7 -0
  104. package/dist/parsers/review-aggregates.d.ts.map +1 -0
  105. package/dist/parsers/review-aggregates.js +18 -0
  106. package/dist/parsers/review-aggregates.js.map +1 -0
  107. package/dist/parsers/review-client-filters.d.ts +8 -0
  108. package/dist/parsers/review-client-filters.d.ts.map +1 -0
  109. package/dist/parsers/review-client-filters.js +28 -0
  110. package/dist/parsers/review-client-filters.js.map +1 -0
  111. package/dist/parsers/reviews.d.ts +8 -0
  112. package/dist/parsers/reviews.d.ts.map +1 -0
  113. package/dist/parsers/reviews.js +55 -0
  114. package/dist/parsers/reviews.js.map +1 -0
  115. package/dist/parsers/search-client-filters.d.ts +7 -0
  116. package/dist/parsers/search-client-filters.d.ts.map +1 -0
  117. package/dist/parsers/search-client-filters.js +44 -0
  118. package/dist/parsers/search-client-filters.js.map +1 -0
  119. package/dist/parsers/search-pagination.d.ts +12 -0
  120. package/dist/parsers/search-pagination.d.ts.map +1 -0
  121. package/dist/parsers/search-pagination.js +34 -0
  122. package/dist/parsers/search-pagination.js.map +1 -0
  123. package/dist/parsers/search.d.ts +5 -0
  124. package/dist/parsers/search.d.ts.map +1 -0
  125. package/dist/parsers/search.js +187 -0
  126. package/dist/parsers/search.js.map +1 -0
  127. package/dist/parsers/shared.d.ts +24 -0
  128. package/dist/parsers/shared.d.ts.map +1 -0
  129. package/dist/parsers/shared.js +147 -0
  130. package/dist/parsers/shared.js.map +1 -0
  131. package/dist/parsers/suggest.d.ts +10 -0
  132. package/dist/parsers/suggest.d.ts.map +1 -0
  133. package/dist/parsers/suggest.js +153 -0
  134. package/dist/parsers/suggest.js.map +1 -0
  135. package/dist/parsers/tiles.d.ts +22 -0
  136. package/dist/parsers/tiles.d.ts.map +1 -0
  137. package/dist/parsers/tiles.js +70 -0
  138. package/dist/parsers/tiles.js.map +1 -0
  139. package/dist/parsers/timezone-geocode.d.ts +20 -0
  140. package/dist/parsers/timezone-geocode.d.ts.map +1 -0
  141. package/dist/parsers/timezone-geocode.js +96 -0
  142. package/dist/parsers/timezone-geocode.js.map +1 -0
  143. package/dist/parsers/traffic.d.ts +10 -0
  144. package/dist/parsers/traffic.d.ts.map +1 -0
  145. package/dist/parsers/traffic.js +38 -0
  146. package/dist/parsers/traffic.js.map +1 -0
  147. package/dist/parsers/transit.d.ts +12 -0
  148. package/dist/parsers/transit.d.ts.map +1 -0
  149. package/dist/parsers/transit.js +77 -0
  150. package/dist/parsers/transit.js.map +1 -0
  151. package/dist/parsers/ugc-aggregates.d.ts +9 -0
  152. package/dist/parsers/ugc-aggregates.d.ts.map +1 -0
  153. package/dist/parsers/ugc-aggregates.js +23 -0
  154. package/dist/parsers/ugc-aggregates.js.map +1 -0
  155. package/dist/rpc/app-options.d.ts +25 -0
  156. package/dist/rpc/app-options.d.ts.map +1 -0
  157. package/dist/rpc/app-options.js +147 -0
  158. package/dist/rpc/app-options.js.map +1 -0
  159. package/dist/rpc/batch-execute.d.ts +30 -0
  160. package/dist/rpc/batch-execute.d.ts.map +1 -0
  161. package/dist/rpc/batch-execute.js +217 -0
  162. package/dist/rpc/batch-execute.js.map +1 -0
  163. package/dist/rpc/batch-request-builders.d.ts +65 -0
  164. package/dist/rpc/batch-request-builders.d.ts.map +1 -0
  165. package/dist/rpc/batch-request-builders.js +174 -0
  166. package/dist/rpc/batch-request-builders.js.map +1 -0
  167. package/dist/rpc/batch-rpc.d.ts +34 -0
  168. package/dist/rpc/batch-rpc.d.ts.map +1 -0
  169. package/dist/rpc/batch-rpc.js +70 -0
  170. package/dist/rpc/batch-rpc.js.map +1 -0
  171. package/dist/rpc/batch-services.d.ts +38 -0
  172. package/dist/rpc/batch-services.d.ts.map +1 -0
  173. package/dist/rpc/batch-services.js +69 -0
  174. package/dist/rpc/batch-services.js.map +1 -0
  175. package/dist/rpc/batchexecute-args.d.ts +30 -0
  176. package/dist/rpc/batchexecute-args.d.ts.map +1 -0
  177. package/dist/rpc/batchexecute-args.js +35 -0
  178. package/dist/rpc/batchexecute-args.js.map +1 -0
  179. package/dist/rpc/boq-reviews.d.ts +16 -0
  180. package/dist/rpc/boq-reviews.d.ts.map +1 -0
  181. package/dist/rpc/boq-reviews.js +45 -0
  182. package/dist/rpc/boq-reviews.js.map +1 -0
  183. package/dist/rpc/descriptor-registry.d.ts +61 -0
  184. package/dist/rpc/descriptor-registry.d.ts.map +1 -0
  185. package/dist/rpc/descriptor-registry.js +47 -0
  186. package/dist/rpc/descriptor-registry.js.map +1 -0
  187. package/dist/rpc/feature-rpc.d.ts +27 -0
  188. package/dist/rpc/feature-rpc.d.ts.map +1 -0
  189. package/dist/rpc/feature-rpc.js +44 -0
  190. package/dist/rpc/feature-rpc.js.map +1 -0
  191. package/dist/rpc/lists-pb.d.ts +20 -0
  192. package/dist/rpc/lists-pb.d.ts.map +1 -0
  193. package/dist/rpc/lists-pb.js +20 -0
  194. package/dist/rpc/lists-pb.js.map +1 -0
  195. package/dist/rpc/maps-endpoint-registry.json +185 -0
  196. package/dist/rpc/maps-runtime.d.ts +42 -0
  197. package/dist/rpc/maps-runtime.d.ts.map +1 -0
  198. package/dist/rpc/maps-runtime.js +140 -0
  199. package/dist/rpc/maps-runtime.js.map +1 -0
  200. package/dist/rpc/maps-url-builders.d.ts +35 -0
  201. package/dist/rpc/maps-url-builders.d.ts.map +1 -0
  202. package/dist/rpc/maps-url-builders.js +266 -0
  203. package/dist/rpc/maps-url-builders.js.map +1 -0
  204. package/dist/rpc/nxa.d.ts +13 -0
  205. package/dist/rpc/nxa.d.ts.map +1 -0
  206. package/dist/rpc/nxa.js +44 -0
  207. package/dist/rpc/nxa.js.map +1 -0
  208. package/dist/rpc/panorama-pb.d.ts +60 -0
  209. package/dist/rpc/panorama-pb.d.ts.map +1 -0
  210. package/dist/rpc/panorama-pb.js +71 -0
  211. package/dist/rpc/panorama-pb.js.map +1 -0
  212. package/dist/rpc/passiveassist-pb.d.ts +21 -0
  213. package/dist/rpc/passiveassist-pb.d.ts.map +1 -0
  214. package/dist/rpc/passiveassist-pb.js +24 -0
  215. package/dist/rpc/passiveassist-pb.js.map +1 -0
  216. package/dist/rpc/pb-builders.d.ts +136 -0
  217. package/dist/rpc/pb-builders.d.ts.map +1 -0
  218. package/dist/rpc/pb-builders.js +290 -0
  219. package/dist/rpc/pb-builders.js.map +1 -0
  220. package/dist/rpc/photo-category-tokens.d.ts +29 -0
  221. package/dist/rpc/photo-category-tokens.d.ts.map +1 -0
  222. package/dist/rpc/photo-category-tokens.js +97 -0
  223. package/dist/rpc/photo-category-tokens.js.map +1 -0
  224. package/dist/rpc/photos-pb.d.ts +29 -0
  225. package/dist/rpc/photos-pb.d.ts.map +1 -0
  226. package/dist/rpc/photos-pb.js +73 -0
  227. package/dist/rpc/photos-pb.js.map +1 -0
  228. package/dist/rpc/reveal-pb.d.ts +26 -0
  229. package/dist/rpc/reveal-pb.d.ts.map +1 -0
  230. package/dist/rpc/reveal-pb.js +32 -0
  231. package/dist/rpc/reveal-pb.js.map +1 -0
  232. package/dist/rpc/rpc-client.d.ts +50 -0
  233. package/dist/rpc/rpc-client.d.ts.map +1 -0
  234. package/dist/rpc/rpc-client.js +136 -0
  235. package/dist/rpc/rpc-client.js.map +1 -0
  236. package/dist/rpc/rpc-descriptor-registry.json +776 -0
  237. package/dist/rpc/rpc-methods.d.ts +75 -0
  238. package/dist/rpc/rpc-methods.d.ts.map +1 -0
  239. package/dist/rpc/rpc-methods.js +130 -0
  240. package/dist/rpc/rpc-methods.js.map +1 -0
  241. package/dist/rpc/search-filters.d.ts +43 -0
  242. package/dist/rpc/search-filters.d.ts.map +1 -0
  243. package/dist/rpc/search-filters.js +92 -0
  244. package/dist/rpc/search-filters.js.map +1 -0
  245. package/dist/rpc/suggest-pb.d.ts +34 -0
  246. package/dist/rpc/suggest-pb.d.ts.map +1 -0
  247. package/dist/rpc/suggest-pb.js +42 -0
  248. package/dist/rpc/suggest-pb.js.map +1 -0
  249. package/dist/rpc/tiles-pb.d.ts +45 -0
  250. package/dist/rpc/tiles-pb.d.ts.map +1 -0
  251. package/dist/rpc/tiles-pb.js +71 -0
  252. package/dist/rpc/tiles-pb.js.map +1 -0
  253. package/dist/rpc/xsrf-bootstrap.d.ts +24 -0
  254. package/dist/rpc/xsrf-bootstrap.d.ts.map +1 -0
  255. package/dist/rpc/xsrf-bootstrap.js +63 -0
  256. package/dist/rpc/xsrf-bootstrap.js.map +1 -0
  257. package/dist/server/api-server.d.ts +9 -0
  258. package/dist/server/api-server.d.ts.map +1 -0
  259. package/dist/server/api-server.js +293 -0
  260. package/dist/server/api-server.js.map +1 -0
  261. package/dist/services/ask-maps.d.ts +91 -0
  262. package/dist/services/ask-maps.d.ts.map +1 -0
  263. package/dist/services/ask-maps.js +221 -0
  264. package/dist/services/ask-maps.js.map +1 -0
  265. package/dist/services/batch-url.d.ts +18 -0
  266. package/dist/services/batch-url.d.ts.map +1 -0
  267. package/dist/services/batch-url.js +30 -0
  268. package/dist/services/batch-url.js.map +1 -0
  269. package/dist/services/categories.d.ts +21 -0
  270. package/dist/services/categories.d.ts.map +1 -0
  271. package/dist/services/categories.js +43 -0
  272. package/dist/services/categories.js.map +1 -0
  273. package/dist/services/directions.d.ts +26 -0
  274. package/dist/services/directions.d.ts.map +1 -0
  275. package/dist/services/directions.js +104 -0
  276. package/dist/services/directions.js.map +1 -0
  277. package/dist/services/distance-matrix.d.ts +17 -0
  278. package/dist/services/distance-matrix.d.ts.map +1 -0
  279. package/dist/services/distance-matrix.js +144 -0
  280. package/dist/services/distance-matrix.js.map +1 -0
  281. package/dist/services/elevation.d.ts +30 -0
  282. package/dist/services/elevation.d.ts.map +1 -0
  283. package/dist/services/elevation.js +149 -0
  284. package/dist/services/elevation.js.map +1 -0
  285. package/dist/services/geocode.d.ts +20 -0
  286. package/dist/services/geocode.d.ts.map +1 -0
  287. package/dist/services/geocode.js +63 -0
  288. package/dist/services/geocode.js.map +1 -0
  289. package/dist/services/knowledge.d.ts +25 -0
  290. package/dist/services/knowledge.d.ts.map +1 -0
  291. package/dist/services/knowledge.js +58 -0
  292. package/dist/services/knowledge.js.map +1 -0
  293. package/dist/services/links.d.ts +22 -0
  294. package/dist/services/links.d.ts.map +1 -0
  295. package/dist/services/links.js +145 -0
  296. package/dist/services/links.js.map +1 -0
  297. package/dist/services/lists.d.ts +20 -0
  298. package/dist/services/lists.d.ts.map +1 -0
  299. package/dist/services/lists.js +74 -0
  300. package/dist/services/lists.js.map +1 -0
  301. package/dist/services/local-posts.d.ts +14 -0
  302. package/dist/services/local-posts.d.ts.map +1 -0
  303. package/dist/services/local-posts.js +32 -0
  304. package/dist/services/local-posts.js.map +1 -0
  305. package/dist/services/panorama.d.ts +39 -0
  306. package/dist/services/panorama.d.ts.map +1 -0
  307. package/dist/services/panorama.js +175 -0
  308. package/dist/services/panorama.js.map +1 -0
  309. package/dist/services/passiveassist.d.ts +21 -0
  310. package/dist/services/passiveassist.d.ts.map +1 -0
  311. package/dist/services/passiveassist.js +70 -0
  312. package/dist/services/passiveassist.js.map +1 -0
  313. package/dist/services/photos.d.ts +46 -0
  314. package/dist/services/photos.d.ts.map +1 -0
  315. package/dist/services/photos.js +341 -0
  316. package/dist/services/photos.js.map +1 -0
  317. package/dist/services/places.d.ts +58 -0
  318. package/dist/services/places.d.ts.map +1 -0
  319. package/dist/services/places.js +240 -0
  320. package/dist/services/places.js.map +1 -0
  321. package/dist/services/reveal.d.ts +15 -0
  322. package/dist/services/reveal.d.ts.map +1 -0
  323. package/dist/services/reveal.js +41 -0
  324. package/dist/services/reveal.js.map +1 -0
  325. package/dist/services/reviews.d.ts +70 -0
  326. package/dist/services/reviews.d.ts.map +1 -0
  327. package/dist/services/reviews.js +245 -0
  328. package/dist/services/reviews.js.map +1 -0
  329. package/dist/services/search.d.ts +25 -0
  330. package/dist/services/search.d.ts.map +1 -0
  331. package/dist/services/search.js +130 -0
  332. package/dist/services/search.js.map +1 -0
  333. package/dist/services/static-map.d.ts +14 -0
  334. package/dist/services/static-map.d.ts.map +1 -0
  335. package/dist/services/static-map.js +182 -0
  336. package/dist/services/static-map.js.map +1 -0
  337. package/dist/services/suggest.d.ts +12 -0
  338. package/dist/services/suggest.d.ts.map +1 -0
  339. package/dist/services/suggest.js +36 -0
  340. package/dist/services/suggest.js.map +1 -0
  341. package/dist/services/tiles.d.ts +19 -0
  342. package/dist/services/tiles.d.ts.map +1 -0
  343. package/dist/services/tiles.js +77 -0
  344. package/dist/services/tiles.js.map +1 -0
  345. package/dist/services/timezone.d.ts +19 -0
  346. package/dist/services/timezone.d.ts.map +1 -0
  347. package/dist/services/timezone.js +91 -0
  348. package/dist/services/timezone.js.map +1 -0
  349. package/dist/services/traffic.d.ts +12 -0
  350. package/dist/services/traffic.d.ts.map +1 -0
  351. package/dist/services/traffic.js +40 -0
  352. package/dist/services/traffic.js.map +1 -0
  353. package/dist/services/transit.d.ts +22 -0
  354. package/dist/services/transit.d.ts.map +1 -0
  355. package/dist/services/transit.js +62 -0
  356. package/dist/services/transit.js.map +1 -0
  357. package/dist/services/ugc-aggregates.d.ts +17 -0
  358. package/dist/services/ugc-aggregates.d.ts.map +1 -0
  359. package/dist/services/ugc-aggregates.js +46 -0
  360. package/dist/services/ugc-aggregates.js.map +1 -0
  361. package/dist/types/batch-url.d.ts +21 -0
  362. package/dist/types/batch-url.d.ts.map +1 -0
  363. package/dist/types/batch-url.js +2 -0
  364. package/dist/types/batch-url.js.map +1 -0
  365. package/dist/types/categories.d.ts +43 -0
  366. package/dist/types/categories.d.ts.map +1 -0
  367. package/dist/types/categories.js +2 -0
  368. package/dist/types/categories.js.map +1 -0
  369. package/dist/types/common.d.ts +538 -0
  370. package/dist/types/common.d.ts.map +1 -0
  371. package/dist/types/common.js +77 -0
  372. package/dist/types/common.js.map +1 -0
  373. package/dist/types/directions.d.ts +88 -0
  374. package/dist/types/directions.d.ts.map +1 -0
  375. package/dist/types/directions.js +2 -0
  376. package/dist/types/directions.js.map +1 -0
  377. package/dist/types/distance-matrix.d.ts +40 -0
  378. package/dist/types/distance-matrix.d.ts.map +1 -0
  379. package/dist/types/distance-matrix.js +2 -0
  380. package/dist/types/distance-matrix.js.map +1 -0
  381. package/dist/types/elevation.d.ts +59 -0
  382. package/dist/types/elevation.d.ts.map +1 -0
  383. package/dist/types/elevation.js +2 -0
  384. package/dist/types/elevation.js.map +1 -0
  385. package/dist/types/geocode.d.ts +60 -0
  386. package/dist/types/geocode.d.ts.map +1 -0
  387. package/dist/types/geocode.js +2 -0
  388. package/dist/types/geocode.js.map +1 -0
  389. package/dist/types/links.d.ts +74 -0
  390. package/dist/types/links.d.ts.map +1 -0
  391. package/dist/types/links.js +2 -0
  392. package/dist/types/links.js.map +1 -0
  393. package/dist/types/lists.d.ts +41 -0
  394. package/dist/types/lists.d.ts.map +1 -0
  395. package/dist/types/lists.js +2 -0
  396. package/dist/types/lists.js.map +1 -0
  397. package/dist/types/maps-urls.d.ts +78 -0
  398. package/dist/types/maps-urls.d.ts.map +1 -0
  399. package/dist/types/maps-urls.js +2 -0
  400. package/dist/types/maps-urls.js.map +1 -0
  401. package/dist/types/panorama.d.ts +74 -0
  402. package/dist/types/panorama.d.ts.map +1 -0
  403. package/dist/types/panorama.js +2 -0
  404. package/dist/types/panorama.js.map +1 -0
  405. package/dist/types/passiveassist.d.ts +50 -0
  406. package/dist/types/passiveassist.d.ts.map +1 -0
  407. package/dist/types/passiveassist.js +2 -0
  408. package/dist/types/passiveassist.js.map +1 -0
  409. package/dist/types/photos.d.ts +101 -0
  410. package/dist/types/photos.d.ts.map +1 -0
  411. package/dist/types/photos.js +75 -0
  412. package/dist/types/photos.js.map +1 -0
  413. package/dist/types/protobuf.d.ts +33 -0
  414. package/dist/types/protobuf.d.ts.map +1 -0
  415. package/dist/types/protobuf.js +25 -0
  416. package/dist/types/protobuf.js.map +1 -0
  417. package/dist/types/reveal.d.ts +46 -0
  418. package/dist/types/reveal.d.ts.map +1 -0
  419. package/dist/types/reveal.js +2 -0
  420. package/dist/types/reveal.js.map +1 -0
  421. package/dist/types/reviews.d.ts +79 -0
  422. package/dist/types/reviews.d.ts.map +1 -0
  423. package/dist/types/reviews.js +5 -0
  424. package/dist/types/reviews.js.map +1 -0
  425. package/dist/types/search-filters.d.ts +59 -0
  426. package/dist/types/search-filters.d.ts.map +1 -0
  427. package/dist/types/search-filters.js +35 -0
  428. package/dist/types/search-filters.js.map +1 -0
  429. package/dist/types/static-map.d.ts +61 -0
  430. package/dist/types/static-map.d.ts.map +1 -0
  431. package/dist/types/static-map.js +2 -0
  432. package/dist/types/static-map.js.map +1 -0
  433. package/dist/types/suggest.d.ts +57 -0
  434. package/dist/types/suggest.d.ts.map +1 -0
  435. package/dist/types/suggest.js +2 -0
  436. package/dist/types/suggest.js.map +1 -0
  437. package/dist/types/tiles.d.ts +65 -0
  438. package/dist/types/tiles.d.ts.map +1 -0
  439. package/dist/types/tiles.js +2 -0
  440. package/dist/types/tiles.js.map +1 -0
  441. package/dist/types/timezone.d.ts +36 -0
  442. package/dist/types/timezone.d.ts.map +1 -0
  443. package/dist/types/timezone.js +2 -0
  444. package/dist/types/timezone.js.map +1 -0
  445. package/dist/types/traffic.d.ts +22 -0
  446. package/dist/types/traffic.d.ts.map +1 -0
  447. package/dist/types/traffic.js +2 -0
  448. package/dist/types/traffic.js.map +1 -0
  449. package/dist/types/transit.d.ts +46 -0
  450. package/dist/types/transit.d.ts.map +1 -0
  451. package/dist/types/transit.js +3 -0
  452. package/dist/types/transit.js.map +1 -0
  453. package/dist/types/ugc-aggregates.d.ts +14 -0
  454. package/dist/types/ugc-aggregates.d.ts.map +1 -0
  455. package/dist/types/ugc-aggregates.js +2 -0
  456. package/dist/types/ugc-aggregates.js.map +1 -0
  457. package/dist/utils/chunked-decoder.d.ts +9 -0
  458. package/dist/utils/chunked-decoder.d.ts.map +1 -0
  459. package/dist/utils/chunked-decoder.js +175 -0
  460. package/dist/utils/chunked-decoder.js.map +1 -0
  461. package/dist/utils/directions-metrics.d.ts +5 -0
  462. package/dist/utils/directions-metrics.d.ts.map +1 -0
  463. package/dist/utils/directions-metrics.js +62 -0
  464. package/dist/utils/directions-metrics.js.map +1 -0
  465. package/dist/utils/encoded-polyline.d.ts +9 -0
  466. package/dist/utils/encoded-polyline.d.ts.map +1 -0
  467. package/dist/utils/encoded-polyline.js +67 -0
  468. package/dist/utils/encoded-polyline.js.map +1 -0
  469. package/dist/utils/feature-id.d.ts +2 -0
  470. package/dist/utils/feature-id.d.ts.map +1 -0
  471. package/dist/utils/feature-id.js +11 -0
  472. package/dist/utils/feature-id.js.map +1 -0
  473. package/dist/utils/geo.d.ts +18 -0
  474. package/dist/utils/geo.d.ts.map +1 -0
  475. package/dist/utils/geo.js +40 -0
  476. package/dist/utils/geo.js.map +1 -0
  477. package/dist/utils/ids.d.ts +23 -0
  478. package/dist/utils/ids.d.ts.map +1 -0
  479. package/dist/utils/ids.js +81 -0
  480. package/dist/utils/ids.js.map +1 -0
  481. package/dist/utils/load-env.d.ts +7 -0
  482. package/dist/utils/load-env.d.ts.map +1 -0
  483. package/dist/utils/load-env.js +49 -0
  484. package/dist/utils/load-env.js.map +1 -0
  485. package/dist/utils/photo-url.d.ts +4 -0
  486. package/dist/utils/photo-url.d.ts.map +1 -0
  487. package/dist/utils/photo-url.js +35 -0
  488. package/dist/utils/photo-url.js.map +1 -0
  489. package/dist/utils/plus-code.d.ts +11 -0
  490. package/dist/utils/plus-code.d.ts.map +1 -0
  491. package/dist/utils/plus-code.js +83 -0
  492. package/dist/utils/plus-code.js.map +1 -0
  493. package/dist/utils/png.d.ts +25 -0
  494. package/dist/utils/png.d.ts.map +1 -0
  495. package/dist/utils/png.js +314 -0
  496. package/dist/utils/png.js.map +1 -0
  497. package/dist/utils/pooled.d.ts +6 -0
  498. package/dist/utils/pooled.d.ts.map +1 -0
  499. package/dist/utils/pooled.js +19 -0
  500. package/dist/utils/pooled.js.map +1 -0
  501. package/dist/utils/request-scheduler.d.ts +28 -0
  502. package/dist/utils/request-scheduler.d.ts.map +1 -0
  503. package/dist/utils/request-scheduler.js +58 -0
  504. package/dist/utils/request-scheduler.js.map +1 -0
  505. package/dist/utils/response-parser.d.ts +7 -0
  506. package/dist/utils/response-parser.d.ts.map +1 -0
  507. package/dist/utils/response-parser.js +50 -0
  508. package/dist/utils/response-parser.js.map +1 -0
  509. package/dist/utils/retry-backoff.d.ts +5 -0
  510. package/dist/utils/retry-backoff.d.ts.map +1 -0
  511. package/dist/utils/retry-backoff.js +23 -0
  512. package/dist/utils/retry-backoff.js.map +1 -0
  513. package/dist/utils/safe-get.d.ts +6 -0
  514. package/dist/utils/safe-get.d.ts.map +1 -0
  515. package/dist/utils/safe-get.js +29 -0
  516. package/dist/utils/safe-get.js.map +1 -0
  517. package/dist/utils/static-map-grid.d.ts +71 -0
  518. package/dist/utils/static-map-grid.d.ts.map +1 -0
  519. package/dist/utils/static-map-grid.js +103 -0
  520. package/dist/utils/static-map-grid.js.map +1 -0
  521. package/dist/utils/throttle-detection.d.ts +17 -0
  522. package/dist/utils/throttle-detection.d.ts.map +1 -0
  523. package/dist/utils/throttle-detection.js +71 -0
  524. package/dist/utils/throttle-detection.js.map +1 -0
  525. package/package.json +85 -0
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Ask Maps + Maps AI surfaces.
3
+ *
4
+ * Consumer Maps:
5
+ * - MapsAiAgentService.CallAskMapsAgent (rpcid EGR9cd) — Gemini conversational search
6
+ * - MapsAskMapsHistoryService.* — thread history (signed-in)
7
+ * - MapsGenAiSearchService.SubmitUserFeedback — telemetry only
8
+ *
9
+ * Places API (New) AI field masks are Platform-only (API key). They do **not** appear in
10
+ * anonymous consumer place-preview payloads:
11
+ * generativeSummary | reviewSummary | neighborhoodSummary | evChargeAmenitySummary
12
+ *
13
+ * Desktop Maps often shows “Ask Maps is coming soon” and routes users to mobile; anonymous
14
+ * batchexecute returns HTTP 500 for every probed arg shape. Signed-in cookies
15
+ * (`GMAPS_COOKIES`) are required to exercise the agent.
16
+ */
17
+ import { createRpcClient, isBatchErrorCode, parseBatchPayload } from '../rpc/batch-rpc.js';
18
+ import { BATCH_SERVICES } from '../rpc/batch-services.js';
19
+ import { GMapsAuthError, GMapsError, } from '../types/common.js';
20
+ import { safeGet } from '../utils/safe-get.js';
21
+ /** Official Places API (New) AI field masks — not served on consumer Maps preview. */
22
+ export const PLATFORM_AI_FIELD_MASKS = [
23
+ 'generativeSummary',
24
+ 'reviewSummary',
25
+ 'neighborhoodSummary',
26
+ 'evChargeAmenitySummary',
27
+ ];
28
+ export const MAPS_AI_CAPABILITIES = [
29
+ {
30
+ id: 'CallAskMapsAgent',
31
+ surface: 'consumer-batchexecute',
32
+ status: 'auth-required',
33
+ notes: 'MapsAiAgentService.CallAskMapsAgent (EGR9cd). Anonymous → HTTP 500; desktop often gated to mobile.',
34
+ },
35
+ {
36
+ id: 'AskMapsHistory',
37
+ surface: 'consumer-batchexecute',
38
+ status: 'auth-required',
39
+ notes: 'MapsAskMapsHistoryService List/Get/Delete/Share threads — signed-in only.',
40
+ },
41
+ {
42
+ id: 'SubmitUserFeedback',
43
+ surface: 'telemetry',
44
+ status: 'telemetry-only',
45
+ notes: 'MapsGenAiSearchService.SubmitUserFeedback — not a data API.',
46
+ },
47
+ {
48
+ id: 'generativeSummary',
49
+ surface: 'places-platform',
50
+ status: 'platform-only',
51
+ notes: 'Places API (New) field mask; requires Cloud API key. Absent from consumer preview.',
52
+ },
53
+ {
54
+ id: 'reviewSummary',
55
+ surface: 'places-platform',
56
+ status: 'platform-only',
57
+ notes: 'Places API (New) field mask; Gemini review themes. Absent from consumer preview.',
58
+ },
59
+ {
60
+ id: 'neighborhoodSummary',
61
+ surface: 'places-platform',
62
+ status: 'platform-only',
63
+ notes: 'Places API (New) area summary field mask.',
64
+ },
65
+ {
66
+ id: 'evChargeAmenitySummary',
67
+ surface: 'places-platform',
68
+ status: 'platform-only',
69
+ notes: 'Places API (New) EV amenity summary field mask.',
70
+ },
71
+ ];
72
+ /**
73
+ * Build CallAskMapsAgent args from the Maps JS `yXd` request layout:
74
+ * R7b{1: context(81), 2: Q7b{2: P7b{1: [O7b{query}]}, 3?: viewport}}.
75
+ */
76
+ export function buildAskMapsArgs(options) {
77
+ const query = options.query.trim();
78
+ const o7b = [null, query];
79
+ const p7b = [null, [o7b]];
80
+ const viewport = options.location != null
81
+ ? [null, null, [options.location.lat, options.location.lng, options.zoom ?? 14]]
82
+ : null;
83
+ const q7b = [null, null, p7b, viewport];
84
+ const r7b = [[null, 81], q7b];
85
+ if (options.threadId) {
86
+ return [[options.threadId, r7b]];
87
+ }
88
+ return [r7b];
89
+ }
90
+ function extractAskText(root) {
91
+ const out = [];
92
+ const walk = (node, depth = 0) => {
93
+ if (depth > 12)
94
+ return;
95
+ if (typeof node === 'string' &&
96
+ node.length > 40 &&
97
+ !node.startsWith('http') &&
98
+ !/^[A-Za-z0-9+/=_-]{40,}$/.test(node)) {
99
+ out.push(node);
100
+ return;
101
+ }
102
+ if (Array.isArray(node)) {
103
+ for (const child of node.slice(0, 40))
104
+ walk(child, depth + 1);
105
+ }
106
+ };
107
+ walk(root);
108
+ return [...new Set(out)].slice(0, 20);
109
+ }
110
+ function extractAskPlaces(root) {
111
+ const places = [];
112
+ const walk = (node, depth = 0) => {
113
+ if (depth > 10 || !Array.isArray(node))
114
+ return;
115
+ const hex = safeGet(node, 10);
116
+ const name = safeGet(node, 11);
117
+ if (typeof hex === 'string' && hex.includes('0x') && typeof name === 'string' && name.length > 1) {
118
+ places.push({
119
+ name,
120
+ hexId: hex,
121
+ placeId: safeGet(node, 78),
122
+ lat: safeGet(node, 9, 2),
123
+ lng: safeGet(node, 9, 3),
124
+ rating: safeGet(node, 4, 7),
125
+ });
126
+ }
127
+ for (const child of node.slice(0, 30)) {
128
+ if (Array.isArray(child))
129
+ walk(child, depth + 1);
130
+ }
131
+ };
132
+ walk(root);
133
+ return places;
134
+ }
135
+ function authRequired(message) {
136
+ throw new GMapsAuthError(message);
137
+ }
138
+ export class AskMapsService {
139
+ http;
140
+ config;
141
+ constructor(http, config) {
142
+ this.http = http;
143
+ this.config = config;
144
+ }
145
+ /** Catalog of Maps AI surfaces (consumer + Places Platform). */
146
+ listCapabilities() {
147
+ return MAPS_AI_CAPABILITIES;
148
+ }
149
+ /**
150
+ * Official Places generative / review / neighborhood summaries.
151
+ * These exist only on `places.googleapis.com` with an API key — not on consumer Maps.
152
+ */
153
+ getPlatformAiSummaries(_options) {
154
+ throw new GMapsError('Places AI summaries (generativeSummary, reviewSummary, neighborhoodSummary, ' +
155
+ 'evChargeAmenitySummary) are Places API (New) field masks only. Consumer Maps ' +
156
+ 'place-preview does not embed them. Use an official API key, or maps.askMaps.ask() ' +
157
+ 'for the signed-in Ask Maps agent.', 501);
158
+ }
159
+ /**
160
+ * Call the Ask Maps agent (CallAskMapsAgent).
161
+ *
162
+ * @throws {GMapsAuthError} when the anonymous session is rejected (typical).
163
+ * @throws {GMapsError} on other batchexecute application errors.
164
+ */
165
+ async ask(options) {
166
+ if (!options.query.trim()) {
167
+ throw new GMapsError('Ask Maps query must be non-empty');
168
+ }
169
+ const rpc = await createRpcClient(this.http, this.config);
170
+ const start = performance.now();
171
+ let data;
172
+ try {
173
+ data = await rpc.call(BATCH_SERVICES.CALL_ASK_MAPS, buildAskMapsArgs(options));
174
+ }
175
+ catch (error) {
176
+ const message = error instanceof Error ? error.message : String(error);
177
+ if (/500|401|auth/i.test(message)) {
178
+ authRequired('Ask Maps (CallAskMapsAgent) requires a signed-in Maps session (set GMAPS_COOKIES). ' +
179
+ 'Anonymous batchexecute returns HTTP 500 for all probed arg shapes. ' +
180
+ 'Desktop Maps often shows “Ask Maps is coming soon” and pushes mobile. ' +
181
+ 'Official Places generativeSummary/reviewSummary are Platform-API-only field masks.');
182
+ }
183
+ throw error;
184
+ }
185
+ const root = parseBatchPayload(data);
186
+ const timingMs = performance.now() - start;
187
+ if (isBatchErrorCode(root)) {
188
+ const code = Array.isArray(root) ? root[0] : root;
189
+ if (code === 3 || code === 7 || code === 500) {
190
+ authRequired(`Ask Maps blocked with error [${String(code)}] — signed-in cookies required`);
191
+ }
192
+ throw new GMapsError(`Ask Maps batchexecute error [${String(code)}]`, 200);
193
+ }
194
+ return {
195
+ text: extractAskText(root),
196
+ places: extractAskPlaces(root),
197
+ raw: root,
198
+ timingMs,
199
+ };
200
+ }
201
+ /** List Ask Maps history threads (signed-in). */
202
+ async listHistoryThreads() {
203
+ const rpc = await createRpcClient(this.http, this.config);
204
+ try {
205
+ const data = await rpc.call(BATCH_SERVICES.LIST_ASK_MAPS_HISTORY, [[[null, 81]]]);
206
+ const root = parseBatchPayload(data);
207
+ if (isBatchErrorCode(root)) {
208
+ authRequired('Ask Maps history requires a signed-in Maps session (set GMAPS_COOKIES)');
209
+ }
210
+ return [{ raw: root }];
211
+ }
212
+ catch (error) {
213
+ const message = error instanceof Error ? error.message : String(error);
214
+ if (/500|401|auth|\[3\]|\[7\]/i.test(message)) {
215
+ authRequired('Ask Maps history requires a signed-in Maps session (set GMAPS_COOKIES)');
216
+ }
217
+ throw error;
218
+ }
219
+ }
220
+ }
221
+ //# sourceMappingURL=ask-maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-maps.js","sourceRoot":"","sources":["../../src/services/ask-maps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { HttpClient } from '../client/http-client.js';
2
+ import type { GMapsConfig } from '../types/common.js';
3
+ import type { CreateShortUrlOptions, CreateShortUrlResult, DecodeUrlOptions, DecodedMapsUrl } from '../types/batch-url.js';
4
+ export declare class BatchUrlService {
5
+ private http;
6
+ private config;
7
+ constructor(http: HttpClient, config?: GMapsConfig);
8
+ /** Server-side Maps URL decode (MapsUrlService.DecodeUrl batchexecute). */
9
+ decode(options: DecodeUrlOptions & {
10
+ raw?: boolean;
11
+ }): Promise<DecodedMapsUrl>;
12
+ /** Create a maps.app.goo.gl short link (may require signed-in session). */
13
+ createShortUrl(options: CreateShortUrlOptions & {
14
+ raw?: boolean;
15
+ }): Promise<CreateShortUrlResult>;
16
+ private resolvePsi;
17
+ }
18
+ //# sourceMappingURL=batch-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-url.d.ts","sourceRoot":"","sources":["../../src/services/batch-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAKtD,2EAA2E;IACrE,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAMpF,2EAA2E;IACrE,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAOzF,UAAU;CAIzB"}
@@ -0,0 +1,30 @@
1
+ import { extractCreateShortUrlResult, extractDecodedMapsUrl } from '../parsers/batch-url.js';
2
+ import { buildCreateShortUrlArgs, buildDecodeUrlArgs } from '../rpc/batch-request-builders.js';
3
+ import { BATCH_SERVICES } from '../rpc/batch-services.js';
4
+ import { createRpcClient, fetchPlacePsi } from '../rpc/batch-rpc.js';
5
+ export class BatchUrlService {
6
+ http;
7
+ config;
8
+ constructor(http, config = {}) {
9
+ this.http = http;
10
+ this.config = config;
11
+ }
12
+ /** Server-side Maps URL decode (MapsUrlService.DecodeUrl batchexecute). */
13
+ async decode(options) {
14
+ const rpc = await createRpcClient(this.http, this.config);
15
+ const data = await rpc.call(BATCH_SERVICES.DECODE_URL, buildDecodeUrlArgs(options.url));
16
+ return extractDecodedMapsUrl(data, options);
17
+ }
18
+ /** Create a maps.app.goo.gl short link (may require signed-in session). */
19
+ async createShortUrl(options) {
20
+ const rpc = await createRpcClient(this.http, this.config);
21
+ const psi = options.psi ?? (await this.resolvePsi());
22
+ const data = await rpc.call(BATCH_SERVICES.CREATE_SHORT_URL, buildCreateShortUrlArgs(options.url, psi));
23
+ return extractCreateShortUrlResult(data, options);
24
+ }
25
+ async resolvePsi() {
26
+ const psi = await fetchPlacePsi(this.http, '/maps/place/@12.9168,77.6450,14z');
27
+ return psi ?? 'anonymous';
28
+ }
29
+ }
30
+ //# sourceMappingURL=batch-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-url.js","sourceRoot":"","sources":["../../src/services/batch-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASrE,MAAM,OAAO,eAAe;IAClB,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,2EAA2E;IAC3E,KAAK,CAAC,MAAM,CAAC,OAA6C;QACxD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,OAAO,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,cAAc,CAAC,OAAkD;QACrE,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;QACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACxG,OAAO,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;QAC/E,OAAO,GAAG,IAAI,WAAW,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { HttpClient } from '../client/http-client.js';
2
+ import type { GMapsConfig } from '../types/common.js';
3
+ import type { CategoryNode, CategorySuggestion, GetCategorySuggestionsOptions, GetPlaceInfoOptions, GetPotentialDuplicatesOptions, GetSignedUrlOptions, PlaceInfoResult, PotentialDuplicate, SignedPlaceUrl } from '../types/categories.js';
4
+ export declare class CategoriesService {
5
+ private http;
6
+ private config;
7
+ constructor(http: HttpClient, config?: GMapsConfig);
8
+ /** Full Maps place category taxonomy (LocalRapService.GetCategoryHierarchy). */
9
+ getHierarchy(): Promise<CategoryNode[]>;
10
+ /** Autocomplete category suggestions for a query string. */
11
+ suggest(options: GetCategorySuggestionsOptions): Promise<CategorySuggestion[]>;
12
+ /** Resolve hex id metadata for a place feature id. */
13
+ getPlaceInfo(options: GetPlaceInfoOptions): Promise<PlaceInfoResult>;
14
+ /** Find potential duplicate listings near/alongside a place. */
15
+ getPotentialDuplicates(options: GetPotentialDuplicatesOptions & {
16
+ raw?: boolean;
17
+ }): Promise<PotentialDuplicate[]>;
18
+ /** Get a signed hex id path fragment for authenticated place URLs. */
19
+ getSignedUrl(options: GetSignedUrlOptions): Promise<SignedPlaceUrl | null>;
20
+ }
21
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/services/categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgBtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAC7B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAc;gBAEhB,IAAI,EAAE,UAAU,EAAE,MAAM,GAAE,WAAgB;IAKtD,gFAAgF;IAC1E,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAM7C,4DAA4D;IACtD,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IASpF,sDAAsD;IAChD,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAM1E,gEAAgE;IAC1D,sBAAsB,CAC1B,OAAO,EAAE,6BAA6B,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GACzD,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAShC,sEAAsE;IAChE,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAKjF"}
@@ -0,0 +1,43 @@
1
+ import { extractCategoryHierarchy, extractCategorySuggestions, extractPlaceInfo, extractPotentialDuplicates, extractSignedPlaceUrl, } from '../parsers/categories.js';
2
+ import { buildCategorySuggestionsArgs, buildPlaceInfoArgs, buildPotentialDuplicatesArgs, buildSignedUrlArgs, } from '../rpc/batch-request-builders.js';
3
+ import { BATCH_SERVICES } from '../rpc/batch-services.js';
4
+ import { createRpcClient } from '../rpc/batch-rpc.js';
5
+ export class CategoriesService {
6
+ http;
7
+ config;
8
+ constructor(http, config = {}) {
9
+ this.http = http;
10
+ this.config = config;
11
+ }
12
+ /** Full Maps place category taxonomy (LocalRapService.GetCategoryHierarchy). */
13
+ async getHierarchy() {
14
+ const rpc = await createRpcClient(this.http, this.config);
15
+ const data = await rpc.call(BATCH_SERVICES.CATEGORY_HIERARCHY, []);
16
+ return extractCategoryHierarchy(data);
17
+ }
18
+ /** Autocomplete category suggestions for a query string. */
19
+ async suggest(options) {
20
+ const rpc = await createRpcClient(this.http, this.config);
21
+ const data = await rpc.call(BATCH_SERVICES.CATEGORY_SUGGESTIONS, buildCategorySuggestionsArgs(options.query));
22
+ return extractCategorySuggestions(data);
23
+ }
24
+ /** Resolve hex id metadata for a place feature id. */
25
+ async getPlaceInfo(options) {
26
+ const rpc = await createRpcClient(this.http, this.config);
27
+ const data = await rpc.call(BATCH_SERVICES.PLACE_INFO, buildPlaceInfoArgs(options.hexId));
28
+ return extractPlaceInfo(data);
29
+ }
30
+ /** Find potential duplicate listings near/alongside a place. */
31
+ async getPotentialDuplicates(options) {
32
+ const rpc = await createRpcClient(this.http, this.config);
33
+ const data = await rpc.call(BATCH_SERVICES.POTENTIAL_DUPLICATES, buildPotentialDuplicatesArgs(options.hexId));
34
+ return extractPotentialDuplicates(data, options);
35
+ }
36
+ /** Get a signed hex id path fragment for authenticated place URLs. */
37
+ async getSignedUrl(options) {
38
+ const rpc = await createRpcClient(this.http, this.config);
39
+ const data = await rpc.call(BATCH_SERVICES.SIGNED_URL, buildSignedUrlArgs(options.hexId));
40
+ return extractSignedPlaceUrl(data);
41
+ }
42
+ }
43
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/services/categories.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AActD,MAAM,OAAO,iBAAiB;IACpB,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,gFAAgF;IAChF,KAAK,CAAC,YAAY;QAChB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACnE,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,OAAO,CAAC,OAAsC;QAClD,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,oBAAoB,EACnC,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAC5C,CAAC;QACF,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,sBAAsB,CAC1B,OAA0D;QAE1D,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,oBAAoB,EACnC,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAC5C,CAAC;QACF,OAAO,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { HttpClient } from '../client/http-client.js';
2
+ import type { DirectionsOptions, DirectionsResult, GMapsConfig } from '../types/common.js';
3
+ export interface DirectionsGetOptions extends DirectionsOptions {
4
+ /**
5
+ * Skip `/maps/dir/` HTML scrape when the preview pb lacks turn-by-turn steps.
6
+ * Use for distance-matrix / elevation cells where duration+distance are enough —
7
+ * saves ~300–800 ms per pair.
8
+ */
9
+ metricsOnly?: boolean;
10
+ }
11
+ export declare class DirectionsService {
12
+ private http;
13
+ private hl;
14
+ private gl;
15
+ constructor(http: HttpClient, config: GMapsConfig);
16
+ /**
17
+ * Fetch driving/walking directions via `/maps/preview/directions`.
18
+ * Uses a built pb first; scrapes the Maps `/dir/` page pb when turn-by-turn steps are missing
19
+ * (unless `metricsOnly` — then one preview hit is enough for distance/duration).
20
+ */
21
+ get(options: DirectionsGetOptions): Promise<DirectionsResult>;
22
+ private isBetterResult;
23
+ private hasTurnByTurn;
24
+ private scrapePbFromDirPage;
25
+ }
26
+ //# sourceMappingURL=directions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directions.d.ts","sourceRoot":"","sources":["../../src/services/directions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,KAAK,EAAe,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGxG,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,EAAE,CAAS;gBAEP,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW;IAMjD;;;;OAIG;IACG,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6CnE,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;YAIP,mBAAmB;CAalC"}
@@ -0,0 +1,104 @@
1
+ import { extractDirections } from '../parsers/directions.js';
2
+ import { buildDirectionsUrls, directionsDataSuffix } from '../rpc/pb-builders.js';
3
+ function formatDirEndpoint(value) {
4
+ if (typeof value === 'object') {
5
+ return `${value.lat},${value.lng}`;
6
+ }
7
+ const pipe = value.indexOf('|');
8
+ if (pipe > 0) {
9
+ const hexId = value.slice(0, pipe);
10
+ const name = value.slice(pipe + 1).replace(/\//g, '');
11
+ return `place/${encodeURIComponent(name)}/@${hexId}`;
12
+ }
13
+ return encodeURIComponent(value.replace(/ /g, '+'));
14
+ }
15
+ function buildMapsDirUrl(options) {
16
+ const segments = [
17
+ formatDirEndpoint(options.origin),
18
+ ...(options.waypoints ?? []).map((waypoint) => formatDirEndpoint(waypoint.location)),
19
+ formatDirEndpoint(options.destination),
20
+ ];
21
+ const suffix = directionsDataSuffix(options.mode ?? 'driving');
22
+ return `https://www.google.com/maps/dir/${segments.join('/')}/${suffix}`;
23
+ }
24
+ export class DirectionsService {
25
+ http;
26
+ hl;
27
+ gl;
28
+ constructor(http, config) {
29
+ this.http = http;
30
+ this.hl = config.hl ?? 'en';
31
+ this.gl = config.gl ?? 'us';
32
+ }
33
+ /**
34
+ * Fetch driving/walking directions via `/maps/preview/directions`.
35
+ * Uses a built pb first; scrapes the Maps `/dir/` page pb when turn-by-turn steps are missing
36
+ * (unless `metricsOnly` — then one preview hit is enough for distance/duration).
37
+ */
38
+ async get(options) {
39
+ let best = { legs: [] };
40
+ const tryUrl = async (url) => {
41
+ try {
42
+ const data = await this.http.get(url, {
43
+ referer: 'https://www.google.com/maps/',
44
+ includeOrigin: true,
45
+ });
46
+ return extractDirections(data);
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ };
52
+ for (const url of buildDirectionsUrls({ ...options, hl: this.hl, gl: this.gl })) {
53
+ const parsed = await tryUrl(url);
54
+ if (!parsed)
55
+ continue;
56
+ if (this.isBetterResult(parsed, best))
57
+ best = parsed;
58
+ if (options.metricsOnly) {
59
+ if (parsed.duration || parsed.distance || (parsed.legs[0]?.distance ?? parsed.legs[0]?.duration)) {
60
+ return parsed;
61
+ }
62
+ continue;
63
+ }
64
+ if (this.hasTurnByTurn(parsed))
65
+ return parsed;
66
+ }
67
+ if (options.metricsOnly)
68
+ return best;
69
+ const scrapedPb = await this.scrapePbFromDirPage(options);
70
+ if (scrapedPb) {
71
+ const url = `https://www.google.com/maps/preview/directions` +
72
+ `?authuser=0&hl=${this.hl}&gl=${this.gl}` +
73
+ `&pb=${encodeURIComponent(scrapedPb)}`;
74
+ const parsed = await tryUrl(url);
75
+ if (parsed && this.isBetterResult(parsed, best)) {
76
+ best = parsed;
77
+ }
78
+ }
79
+ return best;
80
+ }
81
+ isBetterResult(next, prev) {
82
+ const nextSteps = next.legs[0]?.steps?.length ?? 0;
83
+ const prevSteps = prev.legs[0]?.steps?.length ?? 0;
84
+ return nextSteps > prevSteps || Boolean(next.duration && !prev.duration);
85
+ }
86
+ hasTurnByTurn(result) {
87
+ return (result.legs[0]?.steps?.length ?? 0) > 0 && Boolean(result.duration);
88
+ }
89
+ async scrapePbFromDirPage(options) {
90
+ try {
91
+ const dirUrl = buildMapsDirUrl(options);
92
+ const html = await this.http.get(dirUrl, {
93
+ referer: 'https://www.google.com/maps/',
94
+ raw: true,
95
+ });
96
+ const match = html.match(/preview\/directions[^"']*pb=([^"'&]+)/);
97
+ return match ? decodeURIComponent(match[1]) : null;
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ }
104
+ //# sourceMappingURL=directions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directions.js","sourceRoot":"","sources":["../../src/services/directions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { GMapsConfig } from '../types/common.js';
2
+ import type { DistanceMatrixOptions, DistanceMatrixResult } from '../types/distance-matrix.js';
3
+ import { DirectionsService } from './directions.js';
4
+ export declare class DistanceMatrixService {
5
+ private directions;
6
+ constructor(directions: DirectionsService, _config: GMapsConfig);
7
+ /**
8
+ * Compute an origins × destinations travel-time matrix.
9
+ *
10
+ * Consumer Maps has no native Distance Matrix RPC — this fans out over
11
+ * `/maps/preview/directions` with `metricsOnly` (no HTML scrape). Defaults:
12
+ * concurrency 8, no artificial per-pair delay. A 2×2 lands near one directions
13
+ * RTT (~700 ms); larger matrices scale as ceil(N×M / concurrency) × ~RTT.
14
+ */
15
+ getMatrix(options: DistanceMatrixOptions): Promise<DistanceMatrixResult>;
16
+ }
17
+ //# sourceMappingURL=distance-matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distance-matrix.d.ts","sourceRoot":"","sources":["../../src/services/distance-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAGV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoDpD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,UAAU,CAAoB;gBAE1B,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW;IAI/D;;;;;;;OAOG;IACG,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAmH/E"}