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.
- package/LICENSE +21 -0
- package/README.md +249 -0
- package/dist/auth/auth-status.d.ts +30 -0
- package/dist/auth/auth-status.d.ts.map +1 -0
- package/dist/auth/auth-status.js +169 -0
- package/dist/auth/auth-status.js.map +1 -0
- package/dist/auth/google-auth.d.ts +9 -0
- package/dist/auth/google-auth.d.ts.map +1 -0
- package/dist/auth/google-auth.js +40 -0
- package/dist/auth/google-auth.js.map +1 -0
- package/dist/auth/maps-tokens.d.ts +6 -0
- package/dist/auth/maps-tokens.d.ts.map +1 -0
- package/dist/auth/maps-tokens.js +18 -0
- package/dist/auth/maps-tokens.js.map +1 -0
- package/dist/auth/session.d.ts +28 -0
- package/dist/auth/session.d.ts.map +1 -0
- package/dist/auth/session.js +104 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/client/gmaps-client.d.ts +92 -0
- package/dist/client/gmaps-client.d.ts.map +1 -0
- package/dist/client/gmaps-client.js +254 -0
- package/dist/client/gmaps-client.js.map +1 -0
- package/dist/client/http-client.d.ts +91 -0
- package/dist/client/http-client.d.ts.map +1 -0
- package/dist/client/http-client.js +393 -0
- package/dist/client/http-client.js.map +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +140 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +97 -0
- package/dist/internal.js.map +1 -0
- package/dist/known-surfaces.d.ts +280 -0
- package/dist/known-surfaces.d.ts.map +1 -0
- package/dist/known-surfaces.js +276 -0
- package/dist/known-surfaces.js.map +1 -0
- package/dist/parsers/batch-url.d.ts +13 -0
- package/dist/parsers/batch-url.d.ts.map +1 -0
- package/dist/parsers/batch-url.js +42 -0
- package/dist/parsers/batch-url.js.map +1 -0
- package/dist/parsers/boq-reviews.d.ts +8 -0
- package/dist/parsers/boq-reviews.d.ts.map +1 -0
- package/dist/parsers/boq-reviews.js +254 -0
- package/dist/parsers/boq-reviews.js.map +1 -0
- package/dist/parsers/categories.d.ts +14 -0
- package/dist/parsers/categories.d.ts.map +1 -0
- package/dist/parsers/categories.js +128 -0
- package/dist/parsers/categories.js.map +1 -0
- package/dist/parsers/directions.d.ts +6 -0
- package/dist/parsers/directions.d.ts.map +1 -0
- package/dist/parsers/directions.js +388 -0
- package/dist/parsers/directions.js.map +1 -0
- package/dist/parsers/elevation-directions.d.ts +18 -0
- package/dist/parsers/elevation-directions.d.ts.map +1 -0
- package/dist/parsers/elevation-directions.js +102 -0
- package/dist/parsers/elevation-directions.js.map +1 -0
- package/dist/parsers/geocode.d.ts +11 -0
- package/dist/parsers/geocode.d.ts.map +1 -0
- package/dist/parsers/geocode.js +104 -0
- package/dist/parsers/geocode.js.map +1 -0
- package/dist/parsers/knowledge.d.ts +13 -0
- package/dist/parsers/knowledge.d.ts.map +1 -0
- package/dist/parsers/knowledge.js +93 -0
- package/dist/parsers/knowledge.js.map +1 -0
- package/dist/parsers/lists.d.ts +23 -0
- package/dist/parsers/lists.d.ts.map +1 -0
- package/dist/parsers/lists.js +219 -0
- package/dist/parsers/lists.js.map +1 -0
- package/dist/parsers/local-posts.d.ts +12 -0
- package/dist/parsers/local-posts.d.ts.map +1 -0
- package/dist/parsers/local-posts.js +112 -0
- package/dist/parsers/local-posts.js.map +1 -0
- package/dist/parsers/maps-url.d.ts +15 -0
- package/dist/parsers/maps-url.d.ts.map +1 -0
- package/dist/parsers/maps-url.js +326 -0
- package/dist/parsers/maps-url.js.map +1 -0
- package/dist/parsers/panorama.d.ts +24 -0
- package/dist/parsers/panorama.d.ts.map +1 -0
- package/dist/parsers/panorama.js +161 -0
- package/dist/parsers/panorama.js.map +1 -0
- package/dist/parsers/passiveassist.d.ts +10 -0
- package/dist/parsers/passiveassist.d.ts.map +1 -0
- package/dist/parsers/passiveassist.js +61 -0
- package/dist/parsers/passiveassist.js.map +1 -0
- package/dist/parsers/photos.d.ts +21 -0
- package/dist/parsers/photos.d.ts.map +1 -0
- package/dist/parsers/photos.js +287 -0
- package/dist/parsers/photos.js.map +1 -0
- package/dist/parsers/place-attributes.d.ts +25 -0
- package/dist/parsers/place-attributes.d.ts.map +1 -0
- package/dist/parsers/place-attributes.js +266 -0
- package/dist/parsers/place-attributes.js.map +1 -0
- package/dist/parsers/place.d.ts +9 -0
- package/dist/parsers/place.d.ts.map +1 -0
- package/dist/parsers/place.js +291 -0
- package/dist/parsers/place.js.map +1 -0
- package/dist/parsers/reveal.d.ts +5 -0
- package/dist/parsers/reveal.d.ts.map +1 -0
- package/dist/parsers/reveal.js +99 -0
- package/dist/parsers/reveal.js.map +1 -0
- package/dist/parsers/review-aggregates.d.ts +7 -0
- package/dist/parsers/review-aggregates.d.ts.map +1 -0
- package/dist/parsers/review-aggregates.js +18 -0
- package/dist/parsers/review-aggregates.js.map +1 -0
- package/dist/parsers/review-client-filters.d.ts +8 -0
- package/dist/parsers/review-client-filters.d.ts.map +1 -0
- package/dist/parsers/review-client-filters.js +28 -0
- package/dist/parsers/review-client-filters.js.map +1 -0
- package/dist/parsers/reviews.d.ts +8 -0
- package/dist/parsers/reviews.d.ts.map +1 -0
- package/dist/parsers/reviews.js +55 -0
- package/dist/parsers/reviews.js.map +1 -0
- package/dist/parsers/search-client-filters.d.ts +7 -0
- package/dist/parsers/search-client-filters.d.ts.map +1 -0
- package/dist/parsers/search-client-filters.js +44 -0
- package/dist/parsers/search-client-filters.js.map +1 -0
- package/dist/parsers/search-pagination.d.ts +12 -0
- package/dist/parsers/search-pagination.d.ts.map +1 -0
- package/dist/parsers/search-pagination.js +34 -0
- package/dist/parsers/search-pagination.js.map +1 -0
- package/dist/parsers/search.d.ts +5 -0
- package/dist/parsers/search.d.ts.map +1 -0
- package/dist/parsers/search.js +187 -0
- package/dist/parsers/search.js.map +1 -0
- package/dist/parsers/shared.d.ts +24 -0
- package/dist/parsers/shared.d.ts.map +1 -0
- package/dist/parsers/shared.js +147 -0
- package/dist/parsers/shared.js.map +1 -0
- package/dist/parsers/suggest.d.ts +10 -0
- package/dist/parsers/suggest.d.ts.map +1 -0
- package/dist/parsers/suggest.js +153 -0
- package/dist/parsers/suggest.js.map +1 -0
- package/dist/parsers/tiles.d.ts +22 -0
- package/dist/parsers/tiles.d.ts.map +1 -0
- package/dist/parsers/tiles.js +70 -0
- package/dist/parsers/tiles.js.map +1 -0
- package/dist/parsers/timezone-geocode.d.ts +20 -0
- package/dist/parsers/timezone-geocode.d.ts.map +1 -0
- package/dist/parsers/timezone-geocode.js +96 -0
- package/dist/parsers/timezone-geocode.js.map +1 -0
- package/dist/parsers/traffic.d.ts +10 -0
- package/dist/parsers/traffic.d.ts.map +1 -0
- package/dist/parsers/traffic.js +38 -0
- package/dist/parsers/traffic.js.map +1 -0
- package/dist/parsers/transit.d.ts +12 -0
- package/dist/parsers/transit.d.ts.map +1 -0
- package/dist/parsers/transit.js +77 -0
- package/dist/parsers/transit.js.map +1 -0
- package/dist/parsers/ugc-aggregates.d.ts +9 -0
- package/dist/parsers/ugc-aggregates.d.ts.map +1 -0
- package/dist/parsers/ugc-aggregates.js +23 -0
- package/dist/parsers/ugc-aggregates.js.map +1 -0
- package/dist/rpc/app-options.d.ts +25 -0
- package/dist/rpc/app-options.d.ts.map +1 -0
- package/dist/rpc/app-options.js +147 -0
- package/dist/rpc/app-options.js.map +1 -0
- package/dist/rpc/batch-execute.d.ts +30 -0
- package/dist/rpc/batch-execute.d.ts.map +1 -0
- package/dist/rpc/batch-execute.js +217 -0
- package/dist/rpc/batch-execute.js.map +1 -0
- package/dist/rpc/batch-request-builders.d.ts +65 -0
- package/dist/rpc/batch-request-builders.d.ts.map +1 -0
- package/dist/rpc/batch-request-builders.js +174 -0
- package/dist/rpc/batch-request-builders.js.map +1 -0
- package/dist/rpc/batch-rpc.d.ts +34 -0
- package/dist/rpc/batch-rpc.d.ts.map +1 -0
- package/dist/rpc/batch-rpc.js +70 -0
- package/dist/rpc/batch-rpc.js.map +1 -0
- package/dist/rpc/batch-services.d.ts +38 -0
- package/dist/rpc/batch-services.d.ts.map +1 -0
- package/dist/rpc/batch-services.js +69 -0
- package/dist/rpc/batch-services.js.map +1 -0
- package/dist/rpc/batchexecute-args.d.ts +30 -0
- package/dist/rpc/batchexecute-args.d.ts.map +1 -0
- package/dist/rpc/batchexecute-args.js +35 -0
- package/dist/rpc/batchexecute-args.js.map +1 -0
- package/dist/rpc/boq-reviews.d.ts +16 -0
- package/dist/rpc/boq-reviews.d.ts.map +1 -0
- package/dist/rpc/boq-reviews.js +45 -0
- package/dist/rpc/boq-reviews.js.map +1 -0
- package/dist/rpc/descriptor-registry.d.ts +61 -0
- package/dist/rpc/descriptor-registry.d.ts.map +1 -0
- package/dist/rpc/descriptor-registry.js +47 -0
- package/dist/rpc/descriptor-registry.js.map +1 -0
- package/dist/rpc/feature-rpc.d.ts +27 -0
- package/dist/rpc/feature-rpc.d.ts.map +1 -0
- package/dist/rpc/feature-rpc.js +44 -0
- package/dist/rpc/feature-rpc.js.map +1 -0
- package/dist/rpc/lists-pb.d.ts +20 -0
- package/dist/rpc/lists-pb.d.ts.map +1 -0
- package/dist/rpc/lists-pb.js +20 -0
- package/dist/rpc/lists-pb.js.map +1 -0
- package/dist/rpc/maps-endpoint-registry.json +185 -0
- package/dist/rpc/maps-runtime.d.ts +42 -0
- package/dist/rpc/maps-runtime.d.ts.map +1 -0
- package/dist/rpc/maps-runtime.js +140 -0
- package/dist/rpc/maps-runtime.js.map +1 -0
- package/dist/rpc/maps-url-builders.d.ts +35 -0
- package/dist/rpc/maps-url-builders.d.ts.map +1 -0
- package/dist/rpc/maps-url-builders.js +266 -0
- package/dist/rpc/maps-url-builders.js.map +1 -0
- package/dist/rpc/nxa.d.ts +13 -0
- package/dist/rpc/nxa.d.ts.map +1 -0
- package/dist/rpc/nxa.js +44 -0
- package/dist/rpc/nxa.js.map +1 -0
- package/dist/rpc/panorama-pb.d.ts +60 -0
- package/dist/rpc/panorama-pb.d.ts.map +1 -0
- package/dist/rpc/panorama-pb.js +71 -0
- package/dist/rpc/panorama-pb.js.map +1 -0
- package/dist/rpc/passiveassist-pb.d.ts +21 -0
- package/dist/rpc/passiveassist-pb.d.ts.map +1 -0
- package/dist/rpc/passiveassist-pb.js +24 -0
- package/dist/rpc/passiveassist-pb.js.map +1 -0
- package/dist/rpc/pb-builders.d.ts +136 -0
- package/dist/rpc/pb-builders.d.ts.map +1 -0
- package/dist/rpc/pb-builders.js +290 -0
- package/dist/rpc/pb-builders.js.map +1 -0
- package/dist/rpc/photo-category-tokens.d.ts +29 -0
- package/dist/rpc/photo-category-tokens.d.ts.map +1 -0
- package/dist/rpc/photo-category-tokens.js +97 -0
- package/dist/rpc/photo-category-tokens.js.map +1 -0
- package/dist/rpc/photos-pb.d.ts +29 -0
- package/dist/rpc/photos-pb.d.ts.map +1 -0
- package/dist/rpc/photos-pb.js +73 -0
- package/dist/rpc/photos-pb.js.map +1 -0
- package/dist/rpc/reveal-pb.d.ts +26 -0
- package/dist/rpc/reveal-pb.d.ts.map +1 -0
- package/dist/rpc/reveal-pb.js +32 -0
- package/dist/rpc/reveal-pb.js.map +1 -0
- package/dist/rpc/rpc-client.d.ts +50 -0
- package/dist/rpc/rpc-client.d.ts.map +1 -0
- package/dist/rpc/rpc-client.js +136 -0
- package/dist/rpc/rpc-client.js.map +1 -0
- package/dist/rpc/rpc-descriptor-registry.json +776 -0
- package/dist/rpc/rpc-methods.d.ts +75 -0
- package/dist/rpc/rpc-methods.d.ts.map +1 -0
- package/dist/rpc/rpc-methods.js +130 -0
- package/dist/rpc/rpc-methods.js.map +1 -0
- package/dist/rpc/search-filters.d.ts +43 -0
- package/dist/rpc/search-filters.d.ts.map +1 -0
- package/dist/rpc/search-filters.js +92 -0
- package/dist/rpc/search-filters.js.map +1 -0
- package/dist/rpc/suggest-pb.d.ts +34 -0
- package/dist/rpc/suggest-pb.d.ts.map +1 -0
- package/dist/rpc/suggest-pb.js +42 -0
- package/dist/rpc/suggest-pb.js.map +1 -0
- package/dist/rpc/tiles-pb.d.ts +45 -0
- package/dist/rpc/tiles-pb.d.ts.map +1 -0
- package/dist/rpc/tiles-pb.js +71 -0
- package/dist/rpc/tiles-pb.js.map +1 -0
- package/dist/rpc/xsrf-bootstrap.d.ts +24 -0
- package/dist/rpc/xsrf-bootstrap.d.ts.map +1 -0
- package/dist/rpc/xsrf-bootstrap.js +63 -0
- package/dist/rpc/xsrf-bootstrap.js.map +1 -0
- package/dist/server/api-server.d.ts +9 -0
- package/dist/server/api-server.d.ts.map +1 -0
- package/dist/server/api-server.js +293 -0
- package/dist/server/api-server.js.map +1 -0
- package/dist/services/ask-maps.d.ts +91 -0
- package/dist/services/ask-maps.d.ts.map +1 -0
- package/dist/services/ask-maps.js +221 -0
- package/dist/services/ask-maps.js.map +1 -0
- package/dist/services/batch-url.d.ts +18 -0
- package/dist/services/batch-url.d.ts.map +1 -0
- package/dist/services/batch-url.js +30 -0
- package/dist/services/batch-url.js.map +1 -0
- package/dist/services/categories.d.ts +21 -0
- package/dist/services/categories.d.ts.map +1 -0
- package/dist/services/categories.js +43 -0
- package/dist/services/categories.js.map +1 -0
- package/dist/services/directions.d.ts +26 -0
- package/dist/services/directions.d.ts.map +1 -0
- package/dist/services/directions.js +104 -0
- package/dist/services/directions.js.map +1 -0
- package/dist/services/distance-matrix.d.ts +17 -0
- package/dist/services/distance-matrix.d.ts.map +1 -0
- package/dist/services/distance-matrix.js +144 -0
- package/dist/services/distance-matrix.js.map +1 -0
- package/dist/services/elevation.d.ts +30 -0
- package/dist/services/elevation.d.ts.map +1 -0
- package/dist/services/elevation.js +149 -0
- package/dist/services/elevation.js.map +1 -0
- package/dist/services/geocode.d.ts +20 -0
- package/dist/services/geocode.d.ts.map +1 -0
- package/dist/services/geocode.js +63 -0
- package/dist/services/geocode.js.map +1 -0
- package/dist/services/knowledge.d.ts +25 -0
- package/dist/services/knowledge.d.ts.map +1 -0
- package/dist/services/knowledge.js +58 -0
- package/dist/services/knowledge.js.map +1 -0
- package/dist/services/links.d.ts +22 -0
- package/dist/services/links.d.ts.map +1 -0
- package/dist/services/links.js +145 -0
- package/dist/services/links.js.map +1 -0
- package/dist/services/lists.d.ts +20 -0
- package/dist/services/lists.d.ts.map +1 -0
- package/dist/services/lists.js +74 -0
- package/dist/services/lists.js.map +1 -0
- package/dist/services/local-posts.d.ts +14 -0
- package/dist/services/local-posts.d.ts.map +1 -0
- package/dist/services/local-posts.js +32 -0
- package/dist/services/local-posts.js.map +1 -0
- package/dist/services/panorama.d.ts +39 -0
- package/dist/services/panorama.d.ts.map +1 -0
- package/dist/services/panorama.js +175 -0
- package/dist/services/panorama.js.map +1 -0
- package/dist/services/passiveassist.d.ts +21 -0
- package/dist/services/passiveassist.d.ts.map +1 -0
- package/dist/services/passiveassist.js +70 -0
- package/dist/services/passiveassist.js.map +1 -0
- package/dist/services/photos.d.ts +46 -0
- package/dist/services/photos.d.ts.map +1 -0
- package/dist/services/photos.js +341 -0
- package/dist/services/photos.js.map +1 -0
- package/dist/services/places.d.ts +58 -0
- package/dist/services/places.d.ts.map +1 -0
- package/dist/services/places.js +240 -0
- package/dist/services/places.js.map +1 -0
- package/dist/services/reveal.d.ts +15 -0
- package/dist/services/reveal.d.ts.map +1 -0
- package/dist/services/reveal.js +41 -0
- package/dist/services/reveal.js.map +1 -0
- package/dist/services/reviews.d.ts +70 -0
- package/dist/services/reviews.d.ts.map +1 -0
- package/dist/services/reviews.js +245 -0
- package/dist/services/reviews.js.map +1 -0
- package/dist/services/search.d.ts +25 -0
- package/dist/services/search.d.ts.map +1 -0
- package/dist/services/search.js +130 -0
- package/dist/services/search.js.map +1 -0
- package/dist/services/static-map.d.ts +14 -0
- package/dist/services/static-map.d.ts.map +1 -0
- package/dist/services/static-map.js +182 -0
- package/dist/services/static-map.js.map +1 -0
- package/dist/services/suggest.d.ts +12 -0
- package/dist/services/suggest.d.ts.map +1 -0
- package/dist/services/suggest.js +36 -0
- package/dist/services/suggest.js.map +1 -0
- package/dist/services/tiles.d.ts +19 -0
- package/dist/services/tiles.d.ts.map +1 -0
- package/dist/services/tiles.js +77 -0
- package/dist/services/tiles.js.map +1 -0
- package/dist/services/timezone.d.ts +19 -0
- package/dist/services/timezone.d.ts.map +1 -0
- package/dist/services/timezone.js +91 -0
- package/dist/services/timezone.js.map +1 -0
- package/dist/services/traffic.d.ts +12 -0
- package/dist/services/traffic.d.ts.map +1 -0
- package/dist/services/traffic.js +40 -0
- package/dist/services/traffic.js.map +1 -0
- package/dist/services/transit.d.ts +22 -0
- package/dist/services/transit.d.ts.map +1 -0
- package/dist/services/transit.js +62 -0
- package/dist/services/transit.js.map +1 -0
- package/dist/services/ugc-aggregates.d.ts +17 -0
- package/dist/services/ugc-aggregates.d.ts.map +1 -0
- package/dist/services/ugc-aggregates.js +46 -0
- package/dist/services/ugc-aggregates.js.map +1 -0
- package/dist/types/batch-url.d.ts +21 -0
- package/dist/types/batch-url.d.ts.map +1 -0
- package/dist/types/batch-url.js +2 -0
- package/dist/types/batch-url.js.map +1 -0
- package/dist/types/categories.d.ts +43 -0
- package/dist/types/categories.d.ts.map +1 -0
- package/dist/types/categories.js +2 -0
- package/dist/types/categories.js.map +1 -0
- package/dist/types/common.d.ts +538 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +77 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/directions.d.ts +88 -0
- package/dist/types/directions.d.ts.map +1 -0
- package/dist/types/directions.js +2 -0
- package/dist/types/directions.js.map +1 -0
- package/dist/types/distance-matrix.d.ts +40 -0
- package/dist/types/distance-matrix.d.ts.map +1 -0
- package/dist/types/distance-matrix.js +2 -0
- package/dist/types/distance-matrix.js.map +1 -0
- package/dist/types/elevation.d.ts +59 -0
- package/dist/types/elevation.d.ts.map +1 -0
- package/dist/types/elevation.js +2 -0
- package/dist/types/elevation.js.map +1 -0
- package/dist/types/geocode.d.ts +60 -0
- package/dist/types/geocode.d.ts.map +1 -0
- package/dist/types/geocode.js +2 -0
- package/dist/types/geocode.js.map +1 -0
- package/dist/types/links.d.ts +74 -0
- package/dist/types/links.d.ts.map +1 -0
- package/dist/types/links.js +2 -0
- package/dist/types/links.js.map +1 -0
- package/dist/types/lists.d.ts +41 -0
- package/dist/types/lists.d.ts.map +1 -0
- package/dist/types/lists.js +2 -0
- package/dist/types/lists.js.map +1 -0
- package/dist/types/maps-urls.d.ts +78 -0
- package/dist/types/maps-urls.d.ts.map +1 -0
- package/dist/types/maps-urls.js +2 -0
- package/dist/types/maps-urls.js.map +1 -0
- package/dist/types/panorama.d.ts +74 -0
- package/dist/types/panorama.d.ts.map +1 -0
- package/dist/types/panorama.js +2 -0
- package/dist/types/panorama.js.map +1 -0
- package/dist/types/passiveassist.d.ts +50 -0
- package/dist/types/passiveassist.d.ts.map +1 -0
- package/dist/types/passiveassist.js +2 -0
- package/dist/types/passiveassist.js.map +1 -0
- package/dist/types/photos.d.ts +101 -0
- package/dist/types/photos.d.ts.map +1 -0
- package/dist/types/photos.js +75 -0
- package/dist/types/photos.js.map +1 -0
- package/dist/types/protobuf.d.ts +33 -0
- package/dist/types/protobuf.d.ts.map +1 -0
- package/dist/types/protobuf.js +25 -0
- package/dist/types/protobuf.js.map +1 -0
- package/dist/types/reveal.d.ts +46 -0
- package/dist/types/reveal.d.ts.map +1 -0
- package/dist/types/reveal.js +2 -0
- package/dist/types/reveal.js.map +1 -0
- package/dist/types/reviews.d.ts +79 -0
- package/dist/types/reviews.d.ts.map +1 -0
- package/dist/types/reviews.js +5 -0
- package/dist/types/reviews.js.map +1 -0
- package/dist/types/search-filters.d.ts +59 -0
- package/dist/types/search-filters.d.ts.map +1 -0
- package/dist/types/search-filters.js +35 -0
- package/dist/types/search-filters.js.map +1 -0
- package/dist/types/static-map.d.ts +61 -0
- package/dist/types/static-map.d.ts.map +1 -0
- package/dist/types/static-map.js +2 -0
- package/dist/types/static-map.js.map +1 -0
- package/dist/types/suggest.d.ts +57 -0
- package/dist/types/suggest.d.ts.map +1 -0
- package/dist/types/suggest.js +2 -0
- package/dist/types/suggest.js.map +1 -0
- package/dist/types/tiles.d.ts +65 -0
- package/dist/types/tiles.d.ts.map +1 -0
- package/dist/types/tiles.js +2 -0
- package/dist/types/tiles.js.map +1 -0
- package/dist/types/timezone.d.ts +36 -0
- package/dist/types/timezone.d.ts.map +1 -0
- package/dist/types/timezone.js +2 -0
- package/dist/types/timezone.js.map +1 -0
- package/dist/types/traffic.d.ts +22 -0
- package/dist/types/traffic.d.ts.map +1 -0
- package/dist/types/traffic.js +2 -0
- package/dist/types/traffic.js.map +1 -0
- package/dist/types/transit.d.ts +46 -0
- package/dist/types/transit.d.ts.map +1 -0
- package/dist/types/transit.js +3 -0
- package/dist/types/transit.js.map +1 -0
- package/dist/types/ugc-aggregates.d.ts +14 -0
- package/dist/types/ugc-aggregates.d.ts.map +1 -0
- package/dist/types/ugc-aggregates.js +2 -0
- package/dist/types/ugc-aggregates.js.map +1 -0
- package/dist/utils/chunked-decoder.d.ts +9 -0
- package/dist/utils/chunked-decoder.d.ts.map +1 -0
- package/dist/utils/chunked-decoder.js +175 -0
- package/dist/utils/chunked-decoder.js.map +1 -0
- package/dist/utils/directions-metrics.d.ts +5 -0
- package/dist/utils/directions-metrics.d.ts.map +1 -0
- package/dist/utils/directions-metrics.js +62 -0
- package/dist/utils/directions-metrics.js.map +1 -0
- package/dist/utils/encoded-polyline.d.ts +9 -0
- package/dist/utils/encoded-polyline.d.ts.map +1 -0
- package/dist/utils/encoded-polyline.js +67 -0
- package/dist/utils/encoded-polyline.js.map +1 -0
- package/dist/utils/feature-id.d.ts +2 -0
- package/dist/utils/feature-id.d.ts.map +1 -0
- package/dist/utils/feature-id.js +11 -0
- package/dist/utils/feature-id.js.map +1 -0
- package/dist/utils/geo.d.ts +18 -0
- package/dist/utils/geo.d.ts.map +1 -0
- package/dist/utils/geo.js +40 -0
- package/dist/utils/geo.js.map +1 -0
- package/dist/utils/ids.d.ts +23 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +81 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/load-env.d.ts +7 -0
- package/dist/utils/load-env.d.ts.map +1 -0
- package/dist/utils/load-env.js +49 -0
- package/dist/utils/load-env.js.map +1 -0
- package/dist/utils/photo-url.d.ts +4 -0
- package/dist/utils/photo-url.d.ts.map +1 -0
- package/dist/utils/photo-url.js +35 -0
- package/dist/utils/photo-url.js.map +1 -0
- package/dist/utils/plus-code.d.ts +11 -0
- package/dist/utils/plus-code.d.ts.map +1 -0
- package/dist/utils/plus-code.js +83 -0
- package/dist/utils/plus-code.js.map +1 -0
- package/dist/utils/png.d.ts +25 -0
- package/dist/utils/png.d.ts.map +1 -0
- package/dist/utils/png.js +314 -0
- package/dist/utils/png.js.map +1 -0
- package/dist/utils/pooled.d.ts +6 -0
- package/dist/utils/pooled.d.ts.map +1 -0
- package/dist/utils/pooled.js +19 -0
- package/dist/utils/pooled.js.map +1 -0
- package/dist/utils/request-scheduler.d.ts +28 -0
- package/dist/utils/request-scheduler.d.ts.map +1 -0
- package/dist/utils/request-scheduler.js +58 -0
- package/dist/utils/request-scheduler.js.map +1 -0
- package/dist/utils/response-parser.d.ts +7 -0
- package/dist/utils/response-parser.d.ts.map +1 -0
- package/dist/utils/response-parser.js +50 -0
- package/dist/utils/response-parser.js.map +1 -0
- package/dist/utils/retry-backoff.d.ts +5 -0
- package/dist/utils/retry-backoff.d.ts.map +1 -0
- package/dist/utils/retry-backoff.js +23 -0
- package/dist/utils/retry-backoff.js.map +1 -0
- package/dist/utils/safe-get.d.ts +6 -0
- package/dist/utils/safe-get.d.ts.map +1 -0
- package/dist/utils/safe-get.js +29 -0
- package/dist/utils/safe-get.js.map +1 -0
- package/dist/utils/static-map-grid.d.ts +71 -0
- package/dist/utils/static-map-grid.d.ts.map +1 -0
- package/dist/utils/static-map-grid.js +103 -0
- package/dist/utils/static-map-grid.js.map +1 -0
- package/dist/utils/throttle-detection.d.ts +17 -0
- package/dist/utils/throttle-detection.d.ts.map +1 -0
- package/dist/utils/throttle-detection.js +71 -0
- package/dist/utils/throttle-detection.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status of reverse-engineered Google Maps HTTP surfaces.
|
|
3
|
+
*/
|
|
4
|
+
export const KNOWN_SURFACES = {
|
|
5
|
+
search: {
|
|
6
|
+
status: 'working',
|
|
7
|
+
method: 'GET',
|
|
8
|
+
path: '/search?tbm=map',
|
|
9
|
+
notes: 'Text search with pagination via !8i{offset}. Enterprise field mask exposes rating, phone, hours, attributes, and timezone in one call.',
|
|
10
|
+
},
|
|
11
|
+
searchFilters: {
|
|
12
|
+
status: 'fallback',
|
|
13
|
+
method: 'GET',
|
|
14
|
+
path: '/search?tbm=map',
|
|
15
|
+
notes: 'Maps applies open-now, price, and rating filters client-side. The SDK filters parsed rows via SearchOptions.filters.',
|
|
16
|
+
},
|
|
17
|
+
geocode: {
|
|
18
|
+
status: 'working',
|
|
19
|
+
method: 'GET',
|
|
20
|
+
path: '/search?tbm=map',
|
|
21
|
+
notes: 'Forward geocode uses q={address}; reverse uses q={lat},{lng}. Same RPC as search; no dedicated geocode endpoint.',
|
|
22
|
+
},
|
|
23
|
+
placePreview: {
|
|
24
|
+
status: 'working',
|
|
25
|
+
method: 'GET',
|
|
26
|
+
path: '/maps/preview/place',
|
|
27
|
+
notes: 'Hours, phone, amenities, and embedded review snippets. Rich/live pb modes return full attribute groups; truncated stubs are retried.',
|
|
28
|
+
},
|
|
29
|
+
reviewsBoq: {
|
|
30
|
+
status: 'working',
|
|
31
|
+
method: 'GET',
|
|
32
|
+
path: '/httpservice/.../GetLocalBoqProxy',
|
|
33
|
+
notes: 'Primary reviews source with pagination. Pages are cumulative; listAll dedupes by reviewId.',
|
|
34
|
+
},
|
|
35
|
+
reviewsEmbedded: {
|
|
36
|
+
status: 'working',
|
|
37
|
+
method: 'GET',
|
|
38
|
+
path: '/maps/preview/place (embedded)',
|
|
39
|
+
notes: 'Review snippets in place preview. No author name or date; use reviewsBoq for full rows.',
|
|
40
|
+
},
|
|
41
|
+
reviewsRpc: {
|
|
42
|
+
status: 'auth-required',
|
|
43
|
+
method: 'GET',
|
|
44
|
+
path: '/maps/rpc/listugcposts',
|
|
45
|
+
notes: 'Requires SAPISID session cookies (GMAPS_COOKIES).',
|
|
46
|
+
},
|
|
47
|
+
localPosts: {
|
|
48
|
+
status: 'unverified',
|
|
49
|
+
method: 'GET',
|
|
50
|
+
path: '/maps/preview/localposts',
|
|
51
|
+
notes: 'Returns HTTP 200 with an empty array for every business sampled. Parser layout is inferred, not validated on real data.',
|
|
52
|
+
},
|
|
53
|
+
knowledgeRpc: {
|
|
54
|
+
status: 'not-used-by-web',
|
|
55
|
+
method: 'GET',
|
|
56
|
+
path: '/maps/rpc/getknowledgeentity',
|
|
57
|
+
notes: 'HTTP 400 for all pb variants. The web client never calls this path; entity panels come from place preview.',
|
|
58
|
+
},
|
|
59
|
+
knowledgeFallback: {
|
|
60
|
+
status: 'fallback',
|
|
61
|
+
method: 'parse',
|
|
62
|
+
path: 'place preview fields',
|
|
63
|
+
notes: 'Categories, amenities, and description from place preview. Facts are amenity strings, not knowledge-graph facts.',
|
|
64
|
+
},
|
|
65
|
+
directions: {
|
|
66
|
+
status: 'working',
|
|
67
|
+
method: 'GET',
|
|
68
|
+
path: '/maps/preview/directions',
|
|
69
|
+
notes: 'Driving, walking, and transit verified. Bicycling coverage is sparse in many cities.',
|
|
70
|
+
},
|
|
71
|
+
transitStationDepartures: {
|
|
72
|
+
status: 'working',
|
|
73
|
+
method: 'GET',
|
|
74
|
+
path: '/maps/preview/place (placeData[62])',
|
|
75
|
+
notes: 'Live departure boards ship inside the place preview for transit stations.',
|
|
76
|
+
},
|
|
77
|
+
batchListTransitLines: {
|
|
78
|
+
status: 'not-used-by-web',
|
|
79
|
+
method: 'POST',
|
|
80
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsTransitService.ListTransitLines)',
|
|
81
|
+
notes: 'Registered in Maps JS but never fired in browser capture. Schedules come from place preview instead.',
|
|
82
|
+
},
|
|
83
|
+
passiveAssist: {
|
|
84
|
+
status: 'working',
|
|
85
|
+
method: 'GET',
|
|
86
|
+
path: '/maps/preview/passiveassist',
|
|
87
|
+
notes: 'Viewport chips (neighborhood labels, weather). Requires an in-page viewport psi from the caller.',
|
|
88
|
+
},
|
|
89
|
+
reveal: {
|
|
90
|
+
status: 'working',
|
|
91
|
+
method: 'GET',
|
|
92
|
+
path: '/maps/preview/reveal',
|
|
93
|
+
notes: 'Resolves a hidden POI from a map click. Requires a bare ftid token.',
|
|
94
|
+
},
|
|
95
|
+
suggest: {
|
|
96
|
+
status: 'working',
|
|
97
|
+
method: 'GET',
|
|
98
|
+
path: '/s?tbm=map&gs_ri=maps&suggest=p',
|
|
99
|
+
notes: 'Omnibox autocomplete. Camera pb is required; bare q returns HTTP 500.',
|
|
100
|
+
},
|
|
101
|
+
panoramaNearby: {
|
|
102
|
+
status: 'working',
|
|
103
|
+
method: 'GET',
|
|
104
|
+
path: '/maps/photometa/ac/v1',
|
|
105
|
+
notes: 'Coverage tiles at z17. listentityphotos nearby mode is abuse-throttled on many IPs.',
|
|
106
|
+
},
|
|
107
|
+
panoramaMetadata: {
|
|
108
|
+
status: 'working',
|
|
109
|
+
method: 'GET',
|
|
110
|
+
path: '/maps/photometa/v1',
|
|
111
|
+
notes: 'Full panorama metadata. Unknown pano id returns a short stub; treat as not-found.',
|
|
112
|
+
},
|
|
113
|
+
mapTilesProto: {
|
|
114
|
+
status: 'working',
|
|
115
|
+
method: 'GET',
|
|
116
|
+
path: '/maps/vt/proto',
|
|
117
|
+
notes: '256px roadmap tiles wrapped in protobuf. Satellite and 512px variants return HTTP 400.',
|
|
118
|
+
},
|
|
119
|
+
mapTilesStream: {
|
|
120
|
+
status: 'working',
|
|
121
|
+
method: 'GET',
|
|
122
|
+
path: '/maps/vt/stream',
|
|
123
|
+
notes: 'Same pb contract as mapTilesProto with a different content-type.',
|
|
124
|
+
},
|
|
125
|
+
mapIcons: {
|
|
126
|
+
status: 'working',
|
|
127
|
+
method: 'GET',
|
|
128
|
+
path: '/maps/vt/icon/name=assets/icons/poi/…',
|
|
129
|
+
notes: 'POI pin sprites. Optional ?scale=2 for retina.',
|
|
130
|
+
},
|
|
131
|
+
panoramaImagery: {
|
|
132
|
+
status: 'working',
|
|
133
|
+
method: 'GET',
|
|
134
|
+
path: 'streetviewpixels-pa.googleapis.com/v1/{thumbnail,tile}',
|
|
135
|
+
notes: 'No auth. Invalid pano ids return a small placeholder JPEG.',
|
|
136
|
+
},
|
|
137
|
+
placeLists: {
|
|
138
|
+
status: 'working',
|
|
139
|
+
method: 'GET',
|
|
140
|
+
path: '/maps/preview/entitylist/getlist',
|
|
141
|
+
notes: 'Public shared place lists. Personal lists require sign-in.',
|
|
142
|
+
},
|
|
143
|
+
placePhotos: {
|
|
144
|
+
status: 'working',
|
|
145
|
+
method: 'GET',
|
|
146
|
+
path: '/maps/preview/place',
|
|
147
|
+
notes: 'place_preview yields many URLs without metadata. batchexecute ListEntityPhotos has full metadata and pagination.',
|
|
148
|
+
},
|
|
149
|
+
shortLinks: {
|
|
150
|
+
status: 'working',
|
|
151
|
+
method: 'GET',
|
|
152
|
+
path: 'maps.app.goo.gl/{id}, goo.gl/maps/{id}',
|
|
153
|
+
notes: 'Short links expand via HTTP redirects. Creation uses batchexecute CreateShortUrl.',
|
|
154
|
+
},
|
|
155
|
+
pegman: {
|
|
156
|
+
status: 'working',
|
|
157
|
+
method: 'GET',
|
|
158
|
+
path: '/maps/preview/pegman',
|
|
159
|
+
notes: 'Street View coverage boxes. Not wrapped in a service; photometa coverage tiles are preferred.',
|
|
160
|
+
},
|
|
161
|
+
distanceMatrix: {
|
|
162
|
+
status: 'fallback',
|
|
163
|
+
method: 'GET',
|
|
164
|
+
path: '/maps/preview/directions',
|
|
165
|
+
notes: 'No batch matrix RPC. Fans out N×M directions requests with dedupe and bounded concurrency.',
|
|
166
|
+
},
|
|
167
|
+
elevation: {
|
|
168
|
+
status: 'fallback',
|
|
169
|
+
method: 'GET',
|
|
170
|
+
path: '/maps/preview/directions',
|
|
171
|
+
notes: 'No dedicated elevation RPC. Parsed from bicycling/walking route elevation blocks where present.',
|
|
172
|
+
},
|
|
173
|
+
timezone: {
|
|
174
|
+
status: 'working',
|
|
175
|
+
method: 'GET',
|
|
176
|
+
path: '/search?tbm=map',
|
|
177
|
+
notes: 'IANA timezone id from geocode rows. UTC/DST offsets are derived locally via Intl.',
|
|
178
|
+
},
|
|
179
|
+
staticMap: {
|
|
180
|
+
status: 'working',
|
|
181
|
+
method: 'GET',
|
|
182
|
+
path: '/maps/vt/proto (local tile stitch)',
|
|
183
|
+
notes: 'Keyless static map via local tile stitching. /maps/api/staticmap requires a billed API key.',
|
|
184
|
+
},
|
|
185
|
+
mapsUrlBuilders: {
|
|
186
|
+
status: 'working',
|
|
187
|
+
method: 'N/A',
|
|
188
|
+
path: 'google.com/maps/* (canonical share links)',
|
|
189
|
+
notes: 'Pure builders for place, search, directions, viewport, and Street View share links.',
|
|
190
|
+
},
|
|
191
|
+
batchTraffic: {
|
|
192
|
+
status: 'working',
|
|
193
|
+
method: 'POST',
|
|
194
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsTrafficService.GetAreaTraffic)',
|
|
195
|
+
notes: 'Viewport traffic summary and severity icons.',
|
|
196
|
+
},
|
|
197
|
+
batchCategories: {
|
|
198
|
+
status: 'working',
|
|
199
|
+
method: 'POST',
|
|
200
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/LocalRapService.*)',
|
|
201
|
+
notes: 'Category taxonomy, suggestions, place info, duplicates, and signed URLs.',
|
|
202
|
+
},
|
|
203
|
+
batchUgcAggregates: {
|
|
204
|
+
status: 'working',
|
|
205
|
+
method: 'POST',
|
|
206
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsUgcPostService.GetPlaceUgcPostAggregates)',
|
|
207
|
+
notes: 'Rating histogram. Requires a Maps session psi in the request args.',
|
|
208
|
+
},
|
|
209
|
+
batchDecodeUrl: {
|
|
210
|
+
status: 'working',
|
|
211
|
+
method: 'POST',
|
|
212
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsUrlService.DecodeUrl)',
|
|
213
|
+
notes: 'Server-side Maps URL decode. Complements the offline parseMapsUrl parser.',
|
|
214
|
+
},
|
|
215
|
+
batchUgcPosts: {
|
|
216
|
+
status: 'auth-required',
|
|
217
|
+
method: 'POST',
|
|
218
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsUgcPostService.ListUgcPosts)',
|
|
219
|
+
notes: 'Anonymous calls return an auth stub with zero rows. Boq proxy is the working anonymous reviews source.',
|
|
220
|
+
},
|
|
221
|
+
batchEntityPhotos: {
|
|
222
|
+
status: 'working',
|
|
223
|
+
method: 'POST',
|
|
224
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsPhotoService.ListEntityPhotos)',
|
|
225
|
+
notes: 'Photo gallery with pagination and metadata. Requires a warmed cookie jar before batchexecute.',
|
|
226
|
+
},
|
|
227
|
+
askMapsAgent: {
|
|
228
|
+
status: 'auth-required',
|
|
229
|
+
method: 'POST',
|
|
230
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsAiAgentService.CallAskMapsAgent)',
|
|
231
|
+
notes: 'Consumer Ask Maps agent. Requires GMAPS_COOKIES.',
|
|
232
|
+
},
|
|
233
|
+
platformAiSummaries: {
|
|
234
|
+
status: 'blocked',
|
|
235
|
+
method: 'GET/POST',
|
|
236
|
+
path: 'places.googleapis.com (generativeSummary / reviewSummary / …)',
|
|
237
|
+
notes: 'Places API field masks only. Not available from consumer Maps surfaces.',
|
|
238
|
+
},
|
|
239
|
+
batchKnowledgeEntity: {
|
|
240
|
+
status: 'blocked',
|
|
241
|
+
method: 'POST',
|
|
242
|
+
path: '/maps/_/MapsWizUi/data/batchexecute (/MapsCrisisService.GetKnowledgeEntity)',
|
|
243
|
+
notes: 'Returns [3] for every probed arg shape. Place preview fallback is the working path.',
|
|
244
|
+
},
|
|
245
|
+
entityDetails: {
|
|
246
|
+
status: 'not-used-by-web',
|
|
247
|
+
method: 'GET',
|
|
248
|
+
path: '/maps/preview/entity',
|
|
249
|
+
notes: 'HTTP 404 for all pb variants. Use place preview instead.',
|
|
250
|
+
},
|
|
251
|
+
batchexecuteDirections: {
|
|
252
|
+
status: 'not-used-by-web',
|
|
253
|
+
method: 'POST',
|
|
254
|
+
path: '/maps/_/MapsWizUi/data/batchexecute',
|
|
255
|
+
notes: 'Route geometry comes from GET /maps/preview/directions, not batchexecute.',
|
|
256
|
+
},
|
|
257
|
+
batchexecuteXsrf: {
|
|
258
|
+
status: 'auth-required',
|
|
259
|
+
method: 'POST',
|
|
260
|
+
path: '/maps/_/MapsWizUi/data/batchexecute',
|
|
261
|
+
notes: 'Legacy short rpcids require WIZ SNlM0e as at. Service-path format works anonymously.',
|
|
262
|
+
},
|
|
263
|
+
batchexecuteServices: {
|
|
264
|
+
status: 'working',
|
|
265
|
+
method: 'POST',
|
|
266
|
+
path: '/maps/_/MapsWizUi/data/batchexecute',
|
|
267
|
+
notes: '2026 service-path format: f.req with /MapsService.Method and no at field. Works anonymously.',
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
export function getSurfaceInfo(name) {
|
|
271
|
+
return KNOWN_SURFACES[name];
|
|
272
|
+
}
|
|
273
|
+
export function listSurfacesByStatus(status) {
|
|
274
|
+
return Object.keys(KNOWN_SURFACES).filter((name) => KNOWN_SURFACES[name].status === status);
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=known-surfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"known-surfaces.js","sourceRoot":"","sources":["../src/known-surfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CreateShortUrlResult, DecodedMapsUrl } from '../types/batch-url.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse DecodeUrl batchexecute response.
|
|
4
|
+
* Verified: lng [0][2][1][1], lat [0][2][1][2], zoom [0][2][1][5], name [0][3][2][1].
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractDecodedMapsUrl(data: unknown, options?: {
|
|
7
|
+
raw?: boolean;
|
|
8
|
+
}): DecodedMapsUrl;
|
|
9
|
+
/** Parse CreateShortUrl — short link typically at [0] or [1]. */
|
|
10
|
+
export declare function extractCreateShortUrlResult(data: unknown, options?: {
|
|
11
|
+
raw?: boolean;
|
|
12
|
+
}): CreateShortUrlResult;
|
|
13
|
+
//# sourceMappingURL=batch-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-url.d.ts","sourceRoot":"","sources":["../../src/parsers/batch-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKlF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,cAAc,CAuBhG;AAED,iEAAiE;AACjE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,oBAAoB,CAY5G"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { safeGet } from '../utils/safe-get.js';
|
|
2
|
+
import { parseBatchPayload } from '../rpc/batch-rpc.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse DecodeUrl batchexecute response.
|
|
5
|
+
* Verified: lng [0][2][1][1], lat [0][2][1][2], zoom [0][2][1][5], name [0][3][2][1].
|
|
6
|
+
*/
|
|
7
|
+
export function extractDecodedMapsUrl(data, options) {
|
|
8
|
+
const root = parseBatchPayload(data);
|
|
9
|
+
const block = safeGet(root, 0) ?? root;
|
|
10
|
+
const coords = safeGet(block, 2, 1);
|
|
11
|
+
const name = safeGet(block, 3, 2, 1);
|
|
12
|
+
let lat;
|
|
13
|
+
let lng;
|
|
14
|
+
let zoom;
|
|
15
|
+
if (Array.isArray(coords)) {
|
|
16
|
+
lng = typeof coords[1] === 'number' ? coords[1] : undefined;
|
|
17
|
+
lat = typeof coords[2] === 'number' ? coords[2] : undefined;
|
|
18
|
+
zoom = typeof coords[5] === 'number' ? coords[5] : undefined;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
name,
|
|
22
|
+
lat,
|
|
23
|
+
lng,
|
|
24
|
+
zoom,
|
|
25
|
+
raw: options?.raw ? root : undefined,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Parse CreateShortUrl — short link typically at [0] or [1]. */
|
|
29
|
+
export function extractCreateShortUrlResult(data, options) {
|
|
30
|
+
const root = parseBatchPayload(data);
|
|
31
|
+
const candidates = [
|
|
32
|
+
safeGet(root, 0),
|
|
33
|
+
safeGet(root, 1),
|
|
34
|
+
safeGet(root, 0, 0),
|
|
35
|
+
];
|
|
36
|
+
const shortUrl = candidates.find((u) => typeof u === 'string' && u.includes('goo.gl'));
|
|
37
|
+
return {
|
|
38
|
+
shortUrl,
|
|
39
|
+
raw: options?.raw ? root : undefined,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=batch-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-url.js","sourceRoot":"","sources":["../../src/parsers/batch-url.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa,EAAE,OAA2B;IAC9E,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAW,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAY,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAS,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,IAAI,GAAuB,CAAC;IAC5B,IAAI,GAAuB,CAAC;IAC5B,IAAI,IAAwB,CAAC;IAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,GAAG,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,GAAG,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,IAAI,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACrC,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,2BAA2B,CAAC,IAAa,EAAE,OAA2B;IACpF,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG;QACjB,OAAO,CAAS,IAAI,EAAE,CAAC,CAAC;QACxB,OAAO,CAAS,IAAI,EAAE,CAAC,CAAC;QACxB,OAAO,CAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;KAC5B,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,OAAO;QACL,QAAQ;QACR,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for GetLocalBoqProxy review responses.
|
|
3
|
+
*/
|
|
4
|
+
import type { ReviewsResult } from '../types/common.js';
|
|
5
|
+
import type { PbNode } from '../types/protobuf.js';
|
|
6
|
+
/** Parse GetLocalBoqProxy JSON response into reviews. */
|
|
7
|
+
export declare function extractBoqReviews(data: PbNode): ReviewsResult;
|
|
8
|
+
//# sourceMappingURL=boq-reviews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boq-reviews.d.ts","sourceRoot":"","sources":["../../src/parsers/boq-reviews.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAoC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQ1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAqQnD,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAoB7D"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for GetLocalBoqProxy review responses.
|
|
3
|
+
*/
|
|
4
|
+
import { asBoqRoot } from '../types/protobuf.js';
|
|
5
|
+
import { normalizePhotoUrl } from '../utils/photo-url.js';
|
|
6
|
+
import { safeGet } from '../utils/safe-get.js';
|
|
7
|
+
import { htmlToPlainText } from './shared.js';
|
|
8
|
+
function isGoogleUserContentUrl(value) {
|
|
9
|
+
return typeof value === 'string' && value.includes('googleusercontent.com');
|
|
10
|
+
}
|
|
11
|
+
function parseLocalGuideLevel(authorPhoto, levelBlock) {
|
|
12
|
+
if (typeof authorPhoto === 'string') {
|
|
13
|
+
const match = authorPhoto.match(/-ba(\d+)-/i);
|
|
14
|
+
if (match)
|
|
15
|
+
return Number.parseInt(match[1], 10);
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(levelBlock) && typeof levelBlock[1] === 'number' && levelBlock[1] > 0) {
|
|
18
|
+
return levelBlock[1];
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
function parseReviewerCredibility(authorInfo) {
|
|
23
|
+
if (!Array.isArray(authorInfo))
|
|
24
|
+
return undefined;
|
|
25
|
+
const reviewCount = typeof authorInfo[3] === 'number' ? authorInfo[3] : undefined;
|
|
26
|
+
const photoCount = typeof authorInfo[4] === 'number' ? authorInfo[4] : undefined;
|
|
27
|
+
const authorPhoto = typeof authorInfo[1] === 'string' ? authorInfo[1] : undefined;
|
|
28
|
+
const localGuideLevel = parseLocalGuideLevel(authorPhoto, authorInfo[5]);
|
|
29
|
+
const isLocalGuide = localGuideLevel != null ||
|
|
30
|
+
(typeof authorPhoto === 'string' && /-ba\d+-/i.test(authorPhoto));
|
|
31
|
+
if (reviewCount == null &&
|
|
32
|
+
photoCount == null &&
|
|
33
|
+
localGuideLevel == null &&
|
|
34
|
+
!isLocalGuide) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return { reviewCount, photoCount, localGuideLevel, isLocalGuide: isLocalGuide || undefined };
|
|
38
|
+
}
|
|
39
|
+
function parseOwnerReply(block) {
|
|
40
|
+
if (!Array.isArray(block))
|
|
41
|
+
return undefined;
|
|
42
|
+
const date = typeof block[1] === 'string' ? block[1] : undefined;
|
|
43
|
+
const rawText = typeof block[2] === 'string' ? block[2] : undefined;
|
|
44
|
+
const text = rawText ? htmlToPlainText(rawText) : undefined;
|
|
45
|
+
if (!date && !text)
|
|
46
|
+
return undefined;
|
|
47
|
+
return { date, text };
|
|
48
|
+
}
|
|
49
|
+
function parseReviewPhotos(review) {
|
|
50
|
+
const photosNode = review[14];
|
|
51
|
+
if (!Array.isArray(photosNode))
|
|
52
|
+
return [];
|
|
53
|
+
const photos = [];
|
|
54
|
+
for (const entry of photosNode) {
|
|
55
|
+
if (!Array.isArray(entry) || typeof entry[0] !== 'string')
|
|
56
|
+
continue;
|
|
57
|
+
const url = entry[0].startsWith('//') ? `https:${entry[0]}` : entry[0];
|
|
58
|
+
if (!url.includes('googleusercontent.com'))
|
|
59
|
+
continue;
|
|
60
|
+
photos.push({
|
|
61
|
+
photoId: typeof entry[3] === 'string' ? entry[3] : undefined,
|
|
62
|
+
url,
|
|
63
|
+
normalizedUrl: normalizePhotoUrl(url),
|
|
64
|
+
caption: typeof entry[1] === 'string' && entry[1].length > 0 ? entry[1] : undefined,
|
|
65
|
+
aspectRatio: typeof entry[4] === 'number' ? entry[4] : undefined,
|
|
66
|
+
videoUrl: typeof entry[5] === 'string' ? entry[5] : undefined,
|
|
67
|
+
uploadDate: typeof entry[6] === 'string' ? entry[6] : undefined,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return photos;
|
|
71
|
+
}
|
|
72
|
+
function parseAttributeValue(entry) {
|
|
73
|
+
const choiceBlock = entry[2];
|
|
74
|
+
if (Array.isArray(choiceBlock)) {
|
|
75
|
+
const row = choiceBlock[0];
|
|
76
|
+
if (Array.isArray(row)) {
|
|
77
|
+
const selected = row[0];
|
|
78
|
+
if (Array.isArray(selected) && typeof selected[1] === 'string') {
|
|
79
|
+
return selected[1];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const altBlock = entry[3];
|
|
84
|
+
if (Array.isArray(altBlock)) {
|
|
85
|
+
const row = altBlock[0];
|
|
86
|
+
if (Array.isArray(row)) {
|
|
87
|
+
const selected = row[0];
|
|
88
|
+
if (Array.isArray(selected) && typeof selected[1] === 'string') {
|
|
89
|
+
return selected[1];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
function parseReviewAttributes(review) {
|
|
96
|
+
const attrsNode = review[30];
|
|
97
|
+
if (!Array.isArray(attrsNode))
|
|
98
|
+
return [];
|
|
99
|
+
const attributes = [];
|
|
100
|
+
for (const entry of attrsNode) {
|
|
101
|
+
if (!Array.isArray(entry) || !Array.isArray(entry[0]))
|
|
102
|
+
continue;
|
|
103
|
+
const keyNode = entry[0];
|
|
104
|
+
let key;
|
|
105
|
+
if (Array.isArray(keyNode)) {
|
|
106
|
+
const first = keyNode[0];
|
|
107
|
+
if (typeof first === 'string') {
|
|
108
|
+
key = first;
|
|
109
|
+
}
|
|
110
|
+
else if (Array.isArray(first) && typeof first[0] === 'string') {
|
|
111
|
+
key = first[0];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (!key)
|
|
115
|
+
continue;
|
|
116
|
+
const label = typeof entry[5] === 'string'
|
|
117
|
+
? entry[5]
|
|
118
|
+
: typeof entry[1] === 'string'
|
|
119
|
+
? entry[1]
|
|
120
|
+
: key;
|
|
121
|
+
const aspectRatings = entry[11];
|
|
122
|
+
const rating = Array.isArray(aspectRatings) && typeof aspectRatings[0] === 'number'
|
|
123
|
+
? aspectRatings[0]
|
|
124
|
+
: undefined;
|
|
125
|
+
const value = parseAttributeValue(entry);
|
|
126
|
+
attributes.push({
|
|
127
|
+
key,
|
|
128
|
+
label,
|
|
129
|
+
value,
|
|
130
|
+
rating: rating != null && rating >= 1 && rating <= 5 ? rating : undefined,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return attributes;
|
|
134
|
+
}
|
|
135
|
+
function parseTranslation(review) {
|
|
136
|
+
const language = typeof review[26] === 'string' ? review[26] : undefined;
|
|
137
|
+
const fullTextRaw = typeof review[27] === 'string' ? review[27] : undefined;
|
|
138
|
+
const previewRaw = typeof review[28] === 'string' ? review[28] : undefined;
|
|
139
|
+
const originalRaw = typeof review[32] === 'string' && review[32].length > 0 ? review[32] : undefined;
|
|
140
|
+
const translationBlock = review[44];
|
|
141
|
+
const isTranslated = Array.isArray(translationBlock) && translationBlock[4] === 1 ? true : undefined;
|
|
142
|
+
const text = fullTextRaw ? htmlToPlainText(fullTextRaw) : undefined;
|
|
143
|
+
const textPreview = previewRaw ? htmlToPlainText(previewRaw) : undefined;
|
|
144
|
+
const originalText = originalRaw ? htmlToPlainText(originalRaw) : undefined;
|
|
145
|
+
if (!language && !text && !textPreview && !originalText && isTranslated == null) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
return { language, isTranslated, text, textPreview, originalText };
|
|
149
|
+
}
|
|
150
|
+
function parseSingleReview(review) {
|
|
151
|
+
if (!Array.isArray(review) || review.length < 6) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const rating = review[1];
|
|
155
|
+
const timeInfo = review[2];
|
|
156
|
+
const authorInfo = review[3];
|
|
157
|
+
const reviewId = review[5];
|
|
158
|
+
const translation = parseTranslation(review);
|
|
159
|
+
const structuredPhotos = parseReviewPhotos(review);
|
|
160
|
+
const attributes = parseReviewAttributes(review);
|
|
161
|
+
const ownerReply = parseOwnerReply(review[4] ?? null);
|
|
162
|
+
const credibility = parseReviewerCredibility(Array.isArray(authorInfo) ? authorInfo : undefined);
|
|
163
|
+
const helpfulCount = typeof review[29] === 'number' ? review[29] : undefined;
|
|
164
|
+
const permalink = typeof review[12] === 'string' ? review[12] : undefined;
|
|
165
|
+
const timestampMs = Array.isArray(timeInfo) && typeof timeInfo[2] === 'string' ? timeInfo[2] : undefined;
|
|
166
|
+
const parsed = {
|
|
167
|
+
reviewId: typeof reviewId === 'string' ? reviewId : undefined,
|
|
168
|
+
rating: typeof rating === 'number' && rating >= 1 && rating <= 5 ? rating : undefined,
|
|
169
|
+
date: Array.isArray(timeInfo) && typeof timeInfo[0] === 'string' ? timeInfo[0] : undefined,
|
|
170
|
+
timestampMs,
|
|
171
|
+
author: Array.isArray(authorInfo) && typeof authorInfo[0] === 'string' ? authorInfo[0] : undefined,
|
|
172
|
+
authorPhoto: Array.isArray(authorInfo) && authorInfo[1] != null && isGoogleUserContentUrl(authorInfo[1])
|
|
173
|
+
? authorInfo[1]
|
|
174
|
+
: undefined,
|
|
175
|
+
profileUrl: Array.isArray(authorInfo) && typeof authorInfo[2] === 'string' ? authorInfo[2] : undefined,
|
|
176
|
+
credibility,
|
|
177
|
+
text: translation?.text,
|
|
178
|
+
textPreview: translation?.textPreview,
|
|
179
|
+
language: translation?.language,
|
|
180
|
+
translation,
|
|
181
|
+
originalText: translation?.originalText,
|
|
182
|
+
isTranslated: translation?.isTranslated,
|
|
183
|
+
ownerReply,
|
|
184
|
+
helpfulCount,
|
|
185
|
+
permalink,
|
|
186
|
+
attributes: attributes.length > 0 ? attributes : undefined,
|
|
187
|
+
photoItems: structuredPhotos.length > 0 ? structuredPhotos : undefined,
|
|
188
|
+
photos: structuredPhotos.length > 0 ? structuredPhotos.map((p) => p.normalizedUrl) : undefined,
|
|
189
|
+
source: 'boq',
|
|
190
|
+
};
|
|
191
|
+
if (!parsed.author && !parsed.text) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
return parsed;
|
|
195
|
+
}
|
|
196
|
+
/** Star counts for the supplied reviews only — not the place aggregate histogram. */
|
|
197
|
+
function buildRatingDistribution(reviews) {
|
|
198
|
+
const dist = {
|
|
199
|
+
oneStar: 0,
|
|
200
|
+
twoStar: 0,
|
|
201
|
+
threeStar: 0,
|
|
202
|
+
fourStar: 0,
|
|
203
|
+
fiveStar: 0,
|
|
204
|
+
};
|
|
205
|
+
let counted = 0;
|
|
206
|
+
for (const review of reviews) {
|
|
207
|
+
switch (review.rating) {
|
|
208
|
+
case 1:
|
|
209
|
+
dist.oneStar++;
|
|
210
|
+
counted++;
|
|
211
|
+
break;
|
|
212
|
+
case 2:
|
|
213
|
+
dist.twoStar++;
|
|
214
|
+
counted++;
|
|
215
|
+
break;
|
|
216
|
+
case 3:
|
|
217
|
+
dist.threeStar++;
|
|
218
|
+
counted++;
|
|
219
|
+
break;
|
|
220
|
+
case 4:
|
|
221
|
+
dist.fourStar++;
|
|
222
|
+
counted++;
|
|
223
|
+
break;
|
|
224
|
+
case 5:
|
|
225
|
+
dist.fiveStar++;
|
|
226
|
+
counted++;
|
|
227
|
+
break;
|
|
228
|
+
default:
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return counted > 0 ? dist : undefined;
|
|
233
|
+
}
|
|
234
|
+
/** Parse GetLocalBoqProxy JSON response into reviews. */
|
|
235
|
+
export function extractBoqReviews(data) {
|
|
236
|
+
const root = asBoqRoot(data);
|
|
237
|
+
const reviewsNode = root ? safeGet(root, 1, 10) : undefined;
|
|
238
|
+
const reviewsArray = Array.isArray(reviewsNode?.[2]) ? reviewsNode[2] : [];
|
|
239
|
+
const nextPageToken = typeof reviewsNode?.[6] === 'string' ? reviewsNode[6] : undefined;
|
|
240
|
+
const reviews = [];
|
|
241
|
+
for (const entry of reviewsArray) {
|
|
242
|
+
const review = parseSingleReview(entry);
|
|
243
|
+
if (review) {
|
|
244
|
+
reviews.push(review);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
reviewCount: reviews.length,
|
|
249
|
+
reviews,
|
|
250
|
+
nextPageToken,
|
|
251
|
+
pageRatingDistribution: buildRatingDistribution(reviews),
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=boq-reviews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boq-reviews.js","sourceRoot":"","sources":["../../src/parsers/boq-reviews.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CategoryNode, CategorySuggestion, PlaceInfoResult, PotentialDuplicate, SignedPlaceUrl } from '../types/categories.js';
|
|
2
|
+
/** Parse GetCategoryHierarchy — top-level categories at [0][*]. */
|
|
3
|
+
export declare function extractCategoryHierarchy(data: unknown): CategoryNode[];
|
|
4
|
+
/** Parse GetCategorySuggestions — pairs at [0][*] as [gcid, label]. */
|
|
5
|
+
export declare function extractCategorySuggestions(data: unknown): CategorySuggestion[];
|
|
6
|
+
/** Parse GetPlaceInfo — hex at [0][1] for [[null, hexId]]. */
|
|
7
|
+
export declare function extractPlaceInfo(data: unknown): PlaceInfoResult;
|
|
8
|
+
/** Parse GetPotentialDuplicates — candidates at [0][*]: [hex, name, category, address, …]. */
|
|
9
|
+
export declare function extractPotentialDuplicates(data: unknown, options?: {
|
|
10
|
+
raw?: boolean;
|
|
11
|
+
}): PotentialDuplicate[];
|
|
12
|
+
/** Parse GetSignedUrl — signed path at [0]. */
|
|
13
|
+
export declare function extractSignedPlaceUrl(data: unknown): SignedPlaceUrl | null;
|
|
14
|
+
//# sourceMappingURL=categories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/parsers/categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAyChC,mEAAmE;AACnE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAYtE;AAED,uEAAuE;AACvE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAe9E;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAoB/D;AAED,8FAA8F;AAC9F,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,kBAAkB,EAAE,CAyB3G;AAED,+CAA+C;AAC/C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAM1E"}
|