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,136 @@
1
+ /**
2
+ * Protobuf URL parameter builders for Google Maps internal endpoints.
3
+ *
4
+ * Format: `!{field}{type}{value}` — field order is critical.
5
+ * Pagination: `!7i` = page size, `!8i` = offset (SerpAPI / Maps web client).
6
+ */
7
+ import type { TravelMode } from '../types/common.js';
8
+ import type { DirectionsWaypoint } from '../types/directions.js';
9
+ export declare function buildSearchPb(params: {
10
+ query: string;
11
+ lat: number;
12
+ lng: number;
13
+ resultsCount: number;
14
+ maxRadius: number;
15
+ viewportDist: number;
16
+ offset: number;
17
+ /** Session token (kEI / response psi) — sent by the browser as !22m5 for page 2+. */
18
+ psi?: string;
19
+ }): string;
20
+ export declare function buildSearchUrl(params: {
21
+ query: string;
22
+ lat: number;
23
+ lng: number;
24
+ resultsCount: number;
25
+ maxRadius: number;
26
+ viewportDist?: number;
27
+ offset: number;
28
+ hl: string;
29
+ gl: string;
30
+ psi?: string;
31
+ ech?: number;
32
+ zoom?: number;
33
+ }): string;
34
+ /**
35
+ * Place preview pb — requests photos, hours, phone, categories, embedded review snippets.
36
+ */
37
+ export declare function buildPlaceDetailPb(params: {
38
+ hexId: string;
39
+ lat: number;
40
+ lng: number;
41
+ }): string;
42
+ /** Extended place pb with amenities and accessibility fields. */
43
+ export declare function buildPlaceRichPb(params: {
44
+ hexId: string;
45
+ name: string;
46
+ lat: number;
47
+ lng: number;
48
+ ftid?: string;
49
+ }): string;
50
+ /**
51
+ * Place preview pb captured verbatim from a live browser session.
52
+ *
53
+ * Only the hex id is required — the browser sends no name or coordinates.
54
+ * Captured via `npm run capture:browser-rpc` (see tests/fixtures/live-pb-capture.json).
55
+ */
56
+ export declare function buildPlaceLivePb(params: {
57
+ hexId: string;
58
+ psi?: string;
59
+ }): string;
60
+ /** @deprecated Use buildPlaceDetailPb */
61
+ export declare const buildPlacePb: typeof buildPlaceRichPb;
62
+ export type PlacePbMode = 'detail' | 'rich' | 'live';
63
+ export declare function buildPlaceUrl(params: {
64
+ hexId: string;
65
+ name?: string;
66
+ lat?: number;
67
+ lng?: number;
68
+ ftid?: string;
69
+ hl: string;
70
+ gl: string;
71
+ mode?: PlacePbMode;
72
+ psi?: string;
73
+ }): string;
74
+ export declare function buildReviewsPb(params: {
75
+ hexId: string;
76
+ limit?: number;
77
+ paginationToken?: string;
78
+ }): string;
79
+ export declare function buildReviewsUrl(params: {
80
+ hexId: string;
81
+ limit?: number;
82
+ paginationToken?: string;
83
+ hl: string;
84
+ gl: string;
85
+ }): string;
86
+ export declare function buildLocalPostsPb(params: {
87
+ hexId: string;
88
+ ftid?: string;
89
+ }): string;
90
+ export declare function buildLocalPostsUrl(params: {
91
+ hexId: string;
92
+ ftid?: string;
93
+ hl: string;
94
+ gl: string;
95
+ }): string;
96
+ /** `data=!3e{n}` suffix for /maps/dir/ page URLs — same code space as `!1e{n}`. */
97
+ export declare function directionsDataSuffix(mode: TravelMode): string;
98
+ export declare function buildDirectionsPb(params: {
99
+ origin: string | {
100
+ lat: number;
101
+ lng: number;
102
+ };
103
+ destination: string | {
104
+ lat: number;
105
+ lng: number;
106
+ };
107
+ waypoints?: DirectionsWaypoint[];
108
+ mode?: TravelMode;
109
+ }): string;
110
+ export declare function buildDirectionsUrls(params: {
111
+ origin: string | {
112
+ lat: number;
113
+ lng: number;
114
+ };
115
+ destination: string | {
116
+ lat: number;
117
+ lng: number;
118
+ };
119
+ waypoints?: DirectionsWaypoint[];
120
+ mode?: TravelMode;
121
+ hl: string;
122
+ gl: string;
123
+ }): string[];
124
+ export declare function buildKnowledgePbVariants(params: {
125
+ hexId: string;
126
+ ftid?: string;
127
+ placeId?: string;
128
+ }): string[];
129
+ export declare function buildKnowledgeUrl(params: {
130
+ hexId: string;
131
+ ftid?: string;
132
+ placeId?: string;
133
+ hl: string;
134
+ gl: string;
135
+ }): string[];
136
+ //# sourceMappingURL=pb-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pb-builders.d.ts","sourceRoot":"","sources":["../../src/rpc/pb-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Protobuf URL parameter builders for Google Maps internal endpoints.
3
+ *
4
+ * Format: `!{field}{type}{value}` — field order is critical.
5
+ * Pagination: `!7i` = page size, `!8i` = offset (SerpAPI / Maps web client).
6
+ */
7
+ import { defaultViewportDist } from '../utils/geo.js';
8
+ export function buildSearchPb(params) {
9
+ const queryEncoded = encodeURIComponent(params.query);
10
+ const offsetPart = params.offset > 0 ? `!8i${params.offset}` : '';
11
+ // Live browser capture: !22m5!1s{psi}!7e81!14m1!3s{psi}!15i9937
12
+ const psiPart = params.psi ? `!22m5!1s${params.psi}!7e81!14m1!3s${params.psi}!15i9937` : '';
13
+ return (`!1s${queryEncoded}` +
14
+ `!4m8!1m3!1d${params.viewportDist}!2d${params.lng}!3d${params.lat}` +
15
+ `!3m2!1i1024!2i768!4f13.1` +
16
+ `!7i${params.resultsCount}${offsetPart}` +
17
+ `!10b1` +
18
+ `!12m57!1m5!18b1!30b1!31m1!1b1!34e1` +
19
+ `!2m4!5m1!6e2!20e3!39b1` +
20
+ `!6m29!32i1!49b1!63m0!66b1!74i${params.maxRadius}` +
21
+ `!85b1!114b1!149b1!206b1!209b1!212b1!215b1!216b1!222b1!223b1!232b1!234b1!235b1!246b1!253b1!260b1!266b1!270b1!273b1!280b1!281b1!286b1!291m0!302i300!303i100` +
22
+ `!10b1!12b1!13b1!14b1!16b1!17m1!3e1!20m4!5e2!6b1!8b1!14b1!46m1!1b0!96b1!99b1` +
23
+ `!19m4!2m3!1i360!2i120!4i8` +
24
+ psiPart);
25
+ }
26
+ export function buildSearchUrl(params) {
27
+ const queryUrl = encodeURIComponent(params.query).replace(/%20/g, '+');
28
+ const viewportDist = params.viewportDist ?? defaultViewportDist(params.lat, params.zoom ?? 15);
29
+ const pb = buildSearchPb({
30
+ query: params.query,
31
+ lat: params.lat,
32
+ lng: params.lng,
33
+ resultsCount: params.resultsCount,
34
+ maxRadius: params.maxRadius,
35
+ viewportDist,
36
+ offset: params.offset,
37
+ psi: params.psi,
38
+ });
39
+ return (`https://www.google.com/search` +
40
+ `?tbm=map&authuser=0&hl=${params.hl}&gl=${params.gl}` +
41
+ `&q=${queryUrl}` +
42
+ `&pb=${encodeURIComponent(pb)}`);
43
+ }
44
+ /**
45
+ * Place preview pb — requests photos, hours, phone, categories, embedded review snippets.
46
+ */
47
+ export function buildPlaceDetailPb(params) {
48
+ return (`!1m14!1s${params.hexId}` +
49
+ `!3m9!1m3!1d5000!2d${params.lng}!3d${params.lat}!2m0!3m2!1i1024!2i768!4f13.1` +
50
+ `!4m2!3d${params.lat}!4d${params.lng}` +
51
+ `!13m1!2m0` +
52
+ `!15m47!1m8!4e2!18m5!3b0!6b0!14b1!17b1!20b1!20e2!4b1` +
53
+ `!10m1!8e3!11m1!3e1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!29b1` +
54
+ `!30m1!2b1!36b1!43b1!52b1!55b1!56m1!1b1` +
55
+ `!65m5!3m4!1m3!1m2!1i224!2i298` +
56
+ `!22m1!1e81!29m0!30m6!3b1!6m1!2b1!7m1!2b1!9b1!32b1!37i771`);
57
+ }
58
+ /** Extended place pb with amenities and accessibility fields. */
59
+ export function buildPlaceRichPb(params) {
60
+ const namePlus = params.name.replace(/ /g, '+');
61
+ const ftidPart = params.ftid ? `!15m2!1m1!4s${params.ftid}` : '';
62
+ // `!1mN` declares how many following groups belong to field 1: 14 for
63
+ // hex+name+viewport+coords, plus 3 more (!15m2!1m1!4s) when an ftid is present.
64
+ // Getting N wrong makes the endpoint reject the request with HTTP 400.
65
+ const groupCount = params.ftid ? 17 : 14;
66
+ return (`!1m${groupCount}` +
67
+ `!1s${params.hexId}` +
68
+ `!2s${namePlus}` +
69
+ `!3m8!1m3!1d3022.7!2d${params.lng}!3d${params.lat}!3m2!1i1024!2i768!4f13.1` +
70
+ `!4m2!3d${params.lat}!4d${params.lng}` +
71
+ ftidPart +
72
+ '!12m4!2m3!1i360!2i120!4i8' +
73
+ '!13m57!2m2!1i203!2i100!3m2!2i4!5b1' +
74
+ '!6m6!1m2!1i86!2i86!1m2!1i408!2i240' +
75
+ '!7m33!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!1m3!1e9!2b1!3e2!2b1!9b0' +
76
+ '!15m8!1m7!1m2!1m1!1e2!2m2!1i195!2i195!3i20' +
77
+ '!15m108!1m29!13m9!2b1!3b1!4b1!6i1!8b1!9b1!14b1!20b1!25b1' +
78
+ '!18m18!3b1!4b1!5b1!6b1!13b1!14b1!17b1!21b1!22b1!27m1!1b0!28b0!30b1!32b1!33m1!1b1!34b1!36e2' +
79
+ '!10m1!8e3!11m1!3e1!14m1!3b0!17b1!20m2!1e3!1e6!24b1!25b1!26b1!27b1!29b1!30m1!2b1!36b1!37b1' +
80
+ '!39m3!2m2!2i1!3i1!43b1!52b1!54m1!1b1!55b1!56m1!1b1!61m2!1m1!1e1!65m5!3m4!1m3!1m2!1i224!2i298' +
81
+ '!72m22!1m8!2b1!5b1!7b1!12m4!1b1!2b1!4m1!1e1!4b1!8m10!1m6!4m1!1e1!4m1!1e3!4m1!1e4!3sother_user_google_review_posts__and__hotel_and_vr_partner_review_posts!6m1!1e1!9b1' +
82
+ '!89b1!98m3!1b1!2b1!3b1!103b1!113b1!114m3!1b1!2m1!1b1!117b1!122m1!1b1!126b1!127b1' +
83
+ '!21m0!22m1!1e81' +
84
+ '!30m8!3b1!6m2!1b1!2b1!7m2!1e3!2b1!9b1' +
85
+ '!34m5!7b1!10b1!14b1!15m1!1b0' +
86
+ '!37i763');
87
+ }
88
+ /**
89
+ * Place preview pb captured verbatim from a live browser session.
90
+ *
91
+ * Only the hex id is required — the browser sends no name or coordinates.
92
+ * Captured via `npm run capture:browser-rpc` (see tests/fixtures/live-pb-capture.json).
93
+ */
94
+ export function buildPlaceLivePb(params) {
95
+ const psiPart = params.psi ? `!14m2!1s${params.psi}!7e81` : '';
96
+ return (`!1m1!1s${params.hexId}` +
97
+ '!12m4!2m3!1i360!2i120!4i8' +
98
+ '!13m57!2m2!1i203!2i100!3m2!2i4!5b1' +
99
+ '!6m6!1m2!1i86!2i86!1m2!1i408!2i240' +
100
+ '!7m33!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3e2!1m3!1e2!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e10!2b0!3e3!1m3!1e10!2b1!3e2!1m3!1e10!2b0!3e4!1m3!1e9!2b1!3e2!2b1!9b0' +
101
+ '!15m8!1m7!1m2!1m1!1e2!2m2!1i195!2i195!3i20' +
102
+ psiPart +
103
+ '!15m110!1m28!13m9!2b1!3b1!4b1!6i1!8b1!9b1!14b1!20b1!25b1' +
104
+ '!18m17!3b1!4b1!5b1!6b1!9b1!13b1!14b1!17b1!20b1!21b1!22b1!30b1!32b1!33m1!1b1!34b1!36e2' +
105
+ '!10m1!8e3!11m1!3e1!17b1!20m2!1e3!1e6!24b1!25b1!26b1!27b1!29b1!30m1!2b1!36b1!37b1' +
106
+ '!39m3!2m2!2i1!3i1!43b1!52b1!54m1!1b1!55b1!56m1!1b1!61m2!1m1!1e1!65m5!3m4!1m3!1m2!1i224!2i298' +
107
+ '!72m22!1m8!2b1!5b1!7b1!12m4!1b1!2b1!4m1!1e1!4b1!8m10!1m6!4m1!1e1!4m1!1e3!4m1!1e4!3sother_user_google_review_posts__and__hotel_and_vr_partner_review_posts!6m1!1e1!9b1' +
108
+ '!89b1!90m2!1m1!1e2!98m3!1b1!2b1!3b1!103b1!113b1!114m3!1b1!2m1!1b1!117b1!122m1!1b1!126b1!127b1!128m1!1b1' +
109
+ '!22m1!1e81' +
110
+ '!29m0' +
111
+ '!30m6!3b1!6m1!2b1!7m1!2b1!9b1' +
112
+ '!34m5!7b1!10b1!14b1!15m1!1b0' +
113
+ '!37i788');
114
+ }
115
+ /** @deprecated Use buildPlaceDetailPb */
116
+ export const buildPlacePb = buildPlaceRichPb;
117
+ export function buildPlaceUrl(params) {
118
+ const requested = params.mode ?? 'live';
119
+ const hasCoords = params.lat != null && params.lng != null;
120
+ // `detail`/`rich` templates embed coordinates (and `rich` a name); fall back to
121
+ // the live hex-only template when the caller has just an id.
122
+ const mode = requested !== 'live' && (!hasCoords || (requested === 'rich' && !params.name))
123
+ ? 'live'
124
+ : requested;
125
+ let pb;
126
+ switch (mode) {
127
+ case 'live':
128
+ pb = buildPlaceLivePb({ hexId: params.hexId, psi: params.psi });
129
+ break;
130
+ case 'rich':
131
+ pb = buildPlaceRichPb({
132
+ hexId: params.hexId,
133
+ name: params.name,
134
+ lat: params.lat,
135
+ lng: params.lng,
136
+ ftid: params.ftid,
137
+ });
138
+ break;
139
+ case 'detail':
140
+ pb = buildPlaceDetailPb({ hexId: params.hexId, lat: params.lat, lng: params.lng });
141
+ break;
142
+ default: {
143
+ const exhaustive = mode;
144
+ throw new Error(`Unhandled place pb mode: ${String(exhaustive)}`);
145
+ }
146
+ }
147
+ const queryPart = params.name ? `&q=${params.name.replace(/ /g, '+')}` : '';
148
+ return (`https://www.google.com/maps/preview/place` +
149
+ `?authuser=0&hl=${params.hl}&gl=${params.gl}` +
150
+ queryPart +
151
+ `&pb=${encodeURIComponent(pb)}`);
152
+ }
153
+ export function buildReviewsPb(params) {
154
+ const limit = params.limit ?? 10;
155
+ const token = params.paginationToken ?? '';
156
+ return (`!1m6!1s${params.hexId}` +
157
+ `!6m4!4m1!1e1!4m1!1e3` +
158
+ `!2m2!1i${limit}!2s${token}` +
159
+ `!5m2!1s!7e81` +
160
+ `!8m9!2b1!3b1!5b1!7b1!12m4!1b1!2b1!4m1!1e1` +
161
+ `!11m4!1e3!2e1!6m1!1i2` +
162
+ `!13m1!1e1`);
163
+ }
164
+ export function buildReviewsUrl(params) {
165
+ const pb = buildReviewsPb(params);
166
+ return (`https://www.google.com/maps/rpc/listugcposts` +
167
+ `?authuser=0&hl=${params.hl}&gl=${params.gl}` +
168
+ `&pb=${encodeURIComponent(pb)}`);
169
+ }
170
+ export function buildLocalPostsPb(params) {
171
+ if (params.ftid) {
172
+ return `!1m2!1s${params.hexId}!2s${params.ftid}`;
173
+ }
174
+ return `!1m1!1s${params.hexId}`;
175
+ }
176
+ export function buildLocalPostsUrl(params) {
177
+ const pb = buildLocalPostsPb(params);
178
+ return (`https://www.google.com/maps/preview/localposts` +
179
+ `?authuser=0&hl=${params.hl}&gl=${params.gl}` +
180
+ `&pb=${encodeURIComponent(pb)}`);
181
+ }
182
+ /**
183
+ * Travel-mode codes for the `!20m6!1e{n}` block, verified against Google's own pb by
184
+ * scraping /maps/dir/ with data=!3e{n} for each mode (npm run probe:directions-modes):
185
+ *
186
+ * 1e0 driving 14 min / 4.5 km / 23 steps
187
+ * 1e1 bicycling (Google itself returns no route for many city pairs)
188
+ * 1e2 walking 58 min / 4.0 km / 17 steps
189
+ * 1e3 transit 34 min / 5.4 km / 15 steps
190
+ *
191
+ * `!2e3` matches what Google emits for every mode; the previous `!2e1` combined with a
192
+ * bogus `1e6` walking code made walking return an empty response.
193
+ */
194
+ const DIRECTIONS_MODE_CODE = {
195
+ driving: 0,
196
+ bicycling: 1,
197
+ walking: 2,
198
+ transit: 3,
199
+ };
200
+ function directionsModeBlock(mode) {
201
+ return `!20m6!1e${DIRECTIONS_MODE_CODE[mode]}!2e3!5e2!6b1!8b1!14b1!46m1!1b0!96b1!99b1`;
202
+ }
203
+ /** `data=!3e{n}` suffix for /maps/dir/ page URLs — same code space as `!1e{n}`. */
204
+ export function directionsDataSuffix(mode) {
205
+ return `data=!4m2!4m1!3e${DIRECTIONS_MODE_CODE[mode]}`;
206
+ }
207
+ const DIRECTIONS_COMMON_SUFFIX = '!6m60!1m5!18b1!30b1!31m1!1b1!34e1!2m4!5m1!6e2!20e3!39b1' +
208
+ '!6m30!32i1!49b1!63m0!66b1!85b1!114b1!149b1!206b1!209b1!212b1!216b1!222b1!223b1!232b1!234b1!235b1!239b1!246b1!253b1!260b1!266b1!270b1!273b1!277b1!280b1!281b1!286b1!291m0!302i300!303i100' +
209
+ '!10b1!12b1!13b1!14b1!16b1!17m1!3e1';
210
+ const DIRECTIONS_PANEL_SUFFIX = '!20m28!1m6!1m2!1i0!2i0!2m2!1i530!2i768!1m6!1m2!1i974!2i0!2m2!1i1024!2i768!1m6!1m2!1i0!2i0!2m2!1i1024!2i20!1m6!1m2!1i0!2i748!2m2!1i1024!2i768!27b1!40i788!47m2!8b1!10e2';
211
+ function directionsEndpointPart(value) {
212
+ if (typeof value === 'string') {
213
+ const pipe = value.indexOf('|');
214
+ if (pipe > 0) {
215
+ const hexId = value.slice(0, pipe);
216
+ const ftid = value.slice(pipe + 1);
217
+ return `!1m2!1s${hexId}!2s${encodeURIComponent(ftid)}`;
218
+ }
219
+ if (value.includes(':')) {
220
+ return `!1m2!1s${value}!2s${encodeURIComponent(value)}`;
221
+ }
222
+ if (value.startsWith('/g/')) {
223
+ const encoded = encodeURIComponent(value);
224
+ return `!1m2!1s${encoded}!2s${encoded}`;
225
+ }
226
+ return `!1s${encodeURIComponent(value.replace(/ /g, '+'))}`;
227
+ }
228
+ return `!1m4!3m2!3d${value.lat}!4d${value.lng}!6e2`;
229
+ }
230
+ function directionsViewportBlock(endpoints, mode) {
231
+ const coords = endpoints.filter((e) => typeof e === 'object');
232
+ if (coords.length >= 2) {
233
+ const lats = coords.map((c) => c.lat);
234
+ const lngs = coords.map((c) => c.lng);
235
+ const midLat = (Math.min(...lats) + Math.max(...lats)) / 2;
236
+ const midLng = (Math.min(...lngs) + Math.max(...lngs)) / 2;
237
+ const span = Math.max(Math.max(...lats) - Math.min(...lats), Math.max(...lngs) - Math.min(...lngs));
238
+ const dist = Math.max(defaultViewportDist(midLat, 13) * 4, span * 111_000 * 2);
239
+ if (mode === 'walking') {
240
+ return (`!3m12!1m3!1d${dist}!2d${midLng}!3d${midLat}` +
241
+ `!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1`);
242
+ }
243
+ return `!3m8!1m3!1d${dist}!2d${midLng}!3d${midLat}!3m2!1i1024!2i768!4f13.1`;
244
+ }
245
+ return `!3m8!1m3!1d5000!2d0!3d0!3m2!1i1024!2i768!4f13.1`;
246
+ }
247
+ function directionsEndpointChain(origin, destination, waypoints) {
248
+ const parts = [directionsEndpointPart(origin)];
249
+ for (const waypoint of waypoints ?? []) {
250
+ parts.push(directionsEndpointPart(waypoint.location));
251
+ }
252
+ parts.push(directionsEndpointPart(destination));
253
+ return parts.join('');
254
+ }
255
+ export function buildDirectionsPb(params) {
256
+ const mode = params.mode ?? 'driving';
257
+ const modeBlock = directionsModeBlock(mode);
258
+ const chain = directionsEndpointChain(params.origin, params.destination, params.waypoints);
259
+ const endpoints = [
260
+ params.origin,
261
+ ...(params.waypoints ?? []).map((w) => w.location),
262
+ params.destination,
263
+ ];
264
+ const viewport = directionsViewportBlock(endpoints, mode);
265
+ return chain + viewport + DIRECTIONS_COMMON_SUFFIX + modeBlock + DIRECTIONS_PANEL_SUFFIX;
266
+ }
267
+ export function buildDirectionsUrls(params) {
268
+ return [
269
+ `https://www.google.com/maps/preview/directions` +
270
+ `?authuser=0&hl=${params.hl}&gl=${params.gl}` +
271
+ `&pb=${encodeURIComponent(buildDirectionsPb(params))}`,
272
+ ];
273
+ }
274
+ export function buildKnowledgePbVariants(params) {
275
+ const variants = [`!1m1!1s${params.hexId}`];
276
+ if (params.ftid) {
277
+ variants.push(`!1m2!1s${params.hexId}!2s${params.ftid}`);
278
+ variants.push(`!1m2!1s${params.ftid}!2s${params.hexId}`);
279
+ }
280
+ if (params.placeId) {
281
+ variants.push(`!1m1!1s${params.placeId}`);
282
+ }
283
+ return variants;
284
+ }
285
+ export function buildKnowledgeUrl(params) {
286
+ return buildKnowledgePbVariants(params).map((pb) => `https://www.google.com/maps/rpc/getknowledgeentity` +
287
+ `?authuser=0&hl=${params.hl}&gl=${params.gl}` +
288
+ `&pb=${encodeURIComponent(pb)}`);
289
+ }
290
+ //# sourceMappingURL=pb-builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pb-builders.js","sourceRoot":"","sources":["../../src/rpc/pb-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Gallery tab metadata for MapsPhotoService.ListEntityPhotos (hspqX).
3
+ *
4
+ * Server-side tab selection does NOT work outside the browser. A token belongs at
5
+ * batchexecute arg[4][25][0][0] as a base64 protobuf (outer field 1 -> inner field 3 =
6
+ * enum value), and `CgIYIA==` (field 3 = 32, "Food & drink") was captured verbatim from a
7
+ * headless tab click — yet replaying that exact token from Node returns batchexecute `[3]`
8
+ * while the identical request without it succeeds. A sweep of field-3 values
9
+ * 8/16/24/32/40/48/56/64 returned `[3]` for every one (2026-07-31), so this is not a
10
+ * matter of finding the right number: something session-bound in the browser request is
11
+ * missing. Categories are therefore filtered client-side from row fields instead — the
12
+ * same conclusion the search filters and review filters reached.
13
+ */
14
+ import type { PhotoCategory, PlacePhoto } from '../types/photos.js';
15
+ /** Gallery tab id -> human label (from response slot [8] when labels are absent). */
16
+ export declare const PHOTO_TAB_ID_LABELS: Record<number, string>;
17
+ /** The one token observed in a real browser request. Kept as evidence; rejected by the server from Node. */
18
+ export declare const CAPTURED_FOOD_CATEGORY_TOKEN = "CgIYIA==";
19
+ /** Encode `{ field, value }` as a category token (matches the captured CgIYIA== layout). */
20
+ export declare function encodePhotoCategoryToken(field: number, value: number): string;
21
+ /**
22
+ * Categories that can be honoured client-side, because the row itself carries the
23
+ * discriminator. Everything else depends on a server-side tab we cannot select.
24
+ */
25
+ export declare const CLIENT_FILTERABLE_CATEGORIES: readonly PhotoCategory[];
26
+ export declare function isClientFilterableCategory(category: PhotoCategory): boolean;
27
+ /** Filter fetched rows down to a category using only fields present on the row. */
28
+ export declare function filterPhotosByCategory(photos: PlacePhoto[], category: PhotoCategory): PlacePhoto[];
29
+ //# sourceMappingURL=photo-category-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo-category-tokens.d.ts","sourceRoot":"","sources":["../../src/rpc/photo-category-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEpE,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYtD,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,4BAA4B,aAAa,CAAC;AAEvD,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,aAAa,EAIhE,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAE3E;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,UAAU,EAAE,CAuBlG"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Gallery tab metadata for MapsPhotoService.ListEntityPhotos (hspqX).
3
+ *
4
+ * Server-side tab selection does NOT work outside the browser. A token belongs at
5
+ * batchexecute arg[4][25][0][0] as a base64 protobuf (outer field 1 -> inner field 3 =
6
+ * enum value), and `CgIYIA==` (field 3 = 32, "Food & drink") was captured verbatim from a
7
+ * headless tab click — yet replaying that exact token from Node returns batchexecute `[3]`
8
+ * while the identical request without it succeeds. A sweep of field-3 values
9
+ * 8/16/24/32/40/48/56/64 returned `[3]` for every one (2026-07-31), so this is not a
10
+ * matter of finding the right number: something session-bound in the browser request is
11
+ * missing. Categories are therefore filtered client-side from row fields instead — the
12
+ * same conclusion the search filters and review filters reached.
13
+ */
14
+ /** Gallery tab id -> human label (from response slot [8] when labels are absent). */
15
+ export const PHOTO_TAB_ID_LABELS = {
16
+ 1: 'All',
17
+ 2: 'Latest',
18
+ 3: 'Videos',
19
+ 4: 'Menu',
20
+ 5: 'Food & drink',
21
+ 6: 'Interior',
22
+ 7: 'Exterior',
23
+ 8: 'Vibe',
24
+ 9: 'By owner',
25
+ 10: 'By visitor',
26
+ 11: 'Street View & 360°',
27
+ };
28
+ /** The one token observed in a real browser request. Kept as evidence; rejected by the server from Node. */
29
+ export const CAPTURED_FOOD_CATEGORY_TOKEN = 'CgIYIA==';
30
+ /** Encode `{ field, value }` as a category token (matches the captured CgIYIA== layout). */
31
+ export function encodePhotoCategoryToken(field, value) {
32
+ const tag = (field << 3) | 0;
33
+ const inner = Buffer.from([tag, value]);
34
+ return Buffer.concat([Buffer.from([0x0a, inner.length]), inner]).toString('base64');
35
+ }
36
+ /**
37
+ * Categories that can be honoured client-side, because the row itself carries the
38
+ * discriminator. Everything else depends on a server-side tab we cannot select.
39
+ */
40
+ export const CLIENT_FILTERABLE_CATEGORIES = [
41
+ 'all',
42
+ 'videos',
43
+ 'street_view',
44
+ ];
45
+ export function isClientFilterableCategory(category) {
46
+ return CLIENT_FILTERABLE_CATEGORIES.includes(category);
47
+ }
48
+ /** Filter fetched rows down to a category using only fields present on the row. */
49
+ export function filterPhotosByCategory(photos, category) {
50
+ switch (category) {
51
+ case 'all':
52
+ return photos;
53
+ case 'videos':
54
+ return photos.filter((photo) => photo.isVideo);
55
+ case 'street_view':
56
+ return photos.filter((photo) => photo.isStreetView || photo.panoId != null);
57
+ case 'latest':
58
+ case 'interior':
59
+ case 'exterior':
60
+ case 'menu':
61
+ case 'food':
62
+ case 'by_owner':
63
+ case 'by_visitor':
64
+ return photos.filter((photo) => photo.categoryLabel != null && matchesLabel(photo.categoryLabel, category));
65
+ default: {
66
+ const exhaustive = category;
67
+ throw new Error(`Unhandled photo category: ${String(exhaustive)}`);
68
+ }
69
+ }
70
+ }
71
+ function matchesLabel(label, category) {
72
+ const normalized = label.toLowerCase();
73
+ switch (category) {
74
+ case 'interior':
75
+ return normalized.includes('interior');
76
+ case 'exterior':
77
+ return normalized.includes('exterior');
78
+ case 'menu':
79
+ return normalized.includes('menu');
80
+ case 'food':
81
+ return normalized.includes('food') || normalized.includes('drink');
82
+ case 'by_owner':
83
+ return normalized.includes('owner');
84
+ case 'by_visitor':
85
+ return normalized.includes('visitor');
86
+ case 'latest':
87
+ case 'all':
88
+ case 'videos':
89
+ case 'street_view':
90
+ return true;
91
+ default: {
92
+ const exhaustive = category;
93
+ throw new Error(`Unhandled photo category label match: ${String(exhaustive)}`);
94
+ }
95
+ }
96
+ }
97
+ //# sourceMappingURL=photo-category-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo-category-tokens.js","sourceRoot":"","sources":["../../src/rpc/photo-category-tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Protobuf builders for `/maps/rpc/photo/listentityphotos` — place (entity) photo sets.
3
+ *
4
+ * Entity mode uses `!1e2` with the hex feature id in `!6m3!1s{hexId}!7e81!15i16698`
5
+ * (veTypeId 16698 = MapsPhotoService entity type 2). Location/nearby mode remains
6
+ * `!1e3` with `!9m2!2d…!3d…!10d…` and is not used for place galleries.
7
+ */
8
+ import type { PhotoCategory } from '../types/photos.js';
9
+ /** Pb body for place entity photo listing. */
10
+ export declare function buildPlacePhotosPb(params: {
11
+ hexId: string;
12
+ pageSize?: number;
13
+ pageToken?: string;
14
+ category?: PhotoCategory;
15
+ thumbnailWidth?: number;
16
+ thumbnailHeight?: number;
17
+ }): string;
18
+ /** Full listentityphotos URL for a place hex id. */
19
+ export declare function buildPlacePhotosUrl(params: {
20
+ hexId: string;
21
+ hl: string;
22
+ gl: string;
23
+ pageSize?: number;
24
+ pageToken?: string;
25
+ category?: PhotoCategory;
26
+ thumbnailWidth?: number;
27
+ thumbnailHeight?: number;
28
+ }): string;
29
+ //# sourceMappingURL=photos-pb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photos-pb.d.ts","sourceRoot":"","sources":["../../src/rpc/photos-pb.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA2DxD,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAYT;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAOT"}