easy-google-places 1.1.0 → 1.2.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Easy Google Restaurants
1
+ # Easy Google Places
2
2
 
3
3
  A TypeScript library to query Google Places API with automatic area subdivision used to bypass result limits.
4
4
 
@@ -34,7 +34,7 @@ const location = { latitude: 48.8566, longitude: 2.3522 };
34
34
 
35
35
  await getGooglePlaces(location)
36
36
  .radius(2000) // Search within 2km radius
37
- .placesType("restaurant")
37
+ .placesTypes(["restaurant"])
38
38
  .fields(["displayName", "rating", "formattedAddress", "id"]) // Specify fields!
39
39
  .apiKey("YOUR_GOOGLE_MAPS_API_KEY")
40
40
  .showLogs()
@@ -57,7 +57,7 @@ const location = { latitude: 48.8566, longitude: 2.3522 };
57
57
 
58
58
  await getLegacyGooglePlaces(location)
59
59
  .radius(2000)
60
- .placesType("restaurant")
60
+ .placesTypes(["restaurant"])
61
61
  .apiKey("YOUR_GOOGLE_MAPS_API_KEY")
62
62
  .showLogs()
63
63
  .onFinished((places) => {
package/dist/api.d.ts CHANGED
@@ -3,10 +3,10 @@ import { Coordinate, MapsPlaceResult, PlaceResult } from "./types";
3
3
  * Fetches places using the Legacy Google Places API (Nearby Search).
4
4
  * Matches the original behavior of this library.
5
5
  */
6
- export declare function fetchLegacyPlaces(location: Coordinate, radius: number, type: string, apiKey: string, onProgress?: (count: number) => void, allowClosedStores?: boolean): Promise<MapsPlaceResult[]>;
6
+ export declare function fetchLegacyPlaces(location: Coordinate, radius: number, types: string[], apiKey: string, onProgress?: (count: number) => void, allowClosedStores?: boolean): Promise<MapsPlaceResult[]>;
7
7
  /**
8
8
  * Fetches places using the New Google Places API (v1).
9
9
  * Allows specifying fields to retrieve.
10
10
  */
11
- export declare function fetchNewPlaces(location: Coordinate, radius: number, type: string, apiKey: string, fields: string[], onProgress?: (count: number) => void, allowClosedStores?: boolean): Promise<PlaceResult[]>;
11
+ export declare function fetchNewPlaces(location: Coordinate, radius: number, types: string[], apiKey: string, fields: string[], onProgress?: (count: number) => void, allowClosedStores?: boolean, excludedPrimaryTypes?: string[]): Promise<PlaceResult[]>;
12
12
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,eAAe,EAAE,CAAC,CA+D5B;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,WAAW,EAAE,CAAC,CA+DxB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,eAAe,EAAE,CAAC,CAiE5B;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,iBAAiB,GAAE,OAAe,EAClC,oBAAoB,GAAE,MAAM,EAAO,GAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAmExB"}
package/dist/core.d.ts CHANGED
@@ -10,14 +10,20 @@ export declare class PlaceQueryBuilder {
10
10
  private _subRadius;
11
11
  private _minRate;
12
12
  private _limitCount;
13
- private _type;
13
+ /**
14
+ * The types of places to search for.
15
+ * See [the API documentation](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
16
+ * @example ["bar", "pub", "restaurant", "cafe"]
17
+ */
18
+ private _types;
14
19
  private _onFinished?;
15
20
  private _showLogs;
16
21
  private _showProgress;
17
22
  private _apiKey;
18
23
  private _forceQueryClosedStores;
24
+ private _excludedPrimaryTypes;
19
25
  constructor(location: Coordinate);
20
- placesType(type: string): this;
26
+ placesTypes(types: string[]): this;
21
27
  radius(radius: number): this;
22
28
  minRate(rate: number): this;
23
29
  limit(max: number): this;
@@ -26,6 +32,7 @@ export declare class PlaceQueryBuilder {
26
32
  showLogs(): this;
27
33
  showProgress(): this;
28
34
  allowClosedStores(): this;
35
+ excludedPrimaryTypes(types: string[]): this;
29
36
  run(): Promise<void>;
30
37
  private handleOutput;
31
38
  }
@@ -38,15 +45,21 @@ export declare class NewPlaceQueryBuilder {
38
45
  private _subRadius;
39
46
  private _minRate;
40
47
  private _limitCount;
41
- private _type;
48
+ /**
49
+ * The types of places to search for.
50
+ * See [the API documentation](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
51
+ * @example ["bar", "pub", "restaurant", "cafe"]
52
+ */
53
+ private _types;
42
54
  private _fields;
43
55
  private _onFinished?;
44
56
  private _showLogs;
45
57
  private _showProgress;
46
58
  private _apiKey;
47
59
  private _forceQueryClosedStores;
60
+ private _excludedPrimaryTypes;
48
61
  constructor(location: Coordinate);
49
- placesType(type: string): this;
62
+ placesTypes(types: string[]): this;
50
63
  radius(radius: number): this;
51
64
  minRate(rate: number): this;
52
65
  limit(max: number): this;
@@ -60,6 +73,14 @@ export declare class NewPlaceQueryBuilder {
60
73
  showLogs(): this;
61
74
  showProgress(): this;
62
75
  allowClosedStores(): this;
76
+ /**
77
+ * Some of the types includes `chinese_restaurant`, `japanese_restaurant`, `italian_restaurant`, etc.
78
+ *
79
+ * You can see the types [here](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
80
+ * @param types
81
+ * @returns
82
+ */
83
+ excludedPrimaryTypes(types: string[]): this;
63
84
  run(): Promise<void>;
64
85
  private handleOutput;
65
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3F,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC;AAC3E,KAAK,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;AAE1E;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,uBAAuB,CAAkB;gBAErC,QAAQ,EAAE,UAAU;IAMzB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKtC,QAAQ,IAAI,IAAI;IAKhB,YAAY,IAAI,IAAI;IAKpB,iBAAiB,IAAI,IAAI;IAKnB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6EjC,OAAO,CAAC,YAAY;CA2BrB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,OAAO,CAAqG;IACpH,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,uBAAuB,CAAkB;gBAErC,QAAQ,EAAE,UAAU;IAKzB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAK9C,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAKzC,QAAQ,IAAI,IAAI;IAKhB,YAAY,IAAI,IAAI;IAKpB,iBAAiB,IAAI,IAAI;IAKnB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAuEjC,OAAO,CAAC,YAAY;CAwBrB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,UAAU,qBAEzD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,wBAEnD"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -30,13 +30,15 @@ function generateSubCircles(center, radius, subRadius = 500) {
30
30
  return coordinates;
31
31
  }
32
32
  // src/api.ts
33
- async function fetchLegacyPlaces(location, radius, type, apiKey, onProgress, allowClosedStores = false) {
33
+ async function fetchLegacyPlaces(location, radius, types, apiKey, onProgress, allowClosedStores = false) {
34
34
  const allPlaces = [];
35
35
  const maxPages = 3;
36
36
  const url = new URL("https://maps.googleapis.com/maps/api/place/nearbysearch/json");
37
37
  url.searchParams.append("location", `${location.latitude},${location.longitude}`);
38
38
  url.searchParams.append("radius", radius.toString());
39
- url.searchParams.append("type", type);
39
+ for (const type of types) {
40
+ url.searchParams.append("type", type);
41
+ }
40
42
  url.searchParams.append("key", apiKey);
41
43
  let nextPageToken = undefined;
42
44
  for (let i = 0;i < maxPages; i++) {
@@ -75,7 +77,7 @@ async function fetchLegacyPlaces(location, radius, type, apiKey, onProgress, all
75
77
  }
76
78
  return allPlaces;
77
79
  }
78
- async function fetchNewPlaces(location, radius, type, apiKey, fields, onProgress, allowClosedStores = false) {
80
+ async function fetchNewPlaces(location, radius, types, apiKey, fields, onProgress, allowClosedStores = false, excludedPrimaryTypes = []) {
79
81
  const allPlaces = [];
80
82
  const url = "https://places.googleapis.com/v1/places:searchNearby";
81
83
  const formattedFields = fields.map((f) => f.startsWith("places.") ? f : `places.${f}`).join(",");
@@ -89,9 +91,12 @@ async function fetchNewPlaces(location, radius, type, apiKey, fields, onProgress
89
91
  radius
90
92
  }
91
93
  },
92
- includedTypes: [type],
94
+ includedTypes: types,
93
95
  maxResultCount: 20
94
96
  };
97
+ if (excludedPrimaryTypes.length > 0) {
98
+ requestBody.excludedPrimaryTypes = excludedPrimaryTypes;
99
+ }
95
100
  try {
96
101
  const response = await fetch(url, {
97
102
  method: "POST",
@@ -133,18 +138,19 @@ class PlaceQueryBuilder {
133
138
  _subRadius = 500;
134
139
  _minRate = 4.1;
135
140
  _limitCount;
136
- _type = "restaurant";
141
+ _types = [];
137
142
  _onFinished;
138
143
  _showLogs = false;
139
144
  _showProgress = false;
140
145
  _apiKey;
141
146
  _forceQueryClosedStores = false;
147
+ _excludedPrimaryTypes = [];
142
148
  constructor(location) {
143
149
  this._location = location;
144
150
  this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;
145
151
  }
146
- placesType(type) {
147
- this._type = type;
152
+ placesTypes(types) {
153
+ this._types = types;
148
154
  return this;
149
155
  }
150
156
  radius(radius) {
@@ -179,6 +185,10 @@ class PlaceQueryBuilder {
179
185
  this._forceQueryClosedStores = true;
180
186
  return this;
181
187
  }
188
+ excludedPrimaryTypes(types) {
189
+ this._excludedPrimaryTypes = types;
190
+ return this;
191
+ }
182
192
  async run() {
183
193
  if (!this._apiKey) {
184
194
  throw new Error("API Key is required. Set it via .apiKey() or NEXT_PUBLIC_GOOGLE_MAPS_API_KEY env var.");
@@ -207,7 +217,7 @@ class PlaceQueryBuilder {
207
217
  for (const circle of subCircles) {
208
218
  if (this._showLogs)
209
219
  console.log(`Querying batch ${processedBatches + 1}/${totalBatches} at ${circle.latitude}, ${circle.longitude}...`);
210
- const places = await fetchLegacyPlaces(circle, this._subRadius, this._type, this._apiKey, (count) => {}, this._forceQueryClosedStores);
220
+ const places = await fetchLegacyPlaces(circle, this._subRadius, this._types, this._apiKey, (count) => {}, this._forceQueryClosedStores);
211
221
  for (const place of places) {
212
222
  if (place.place_id) {
213
223
  allPlacesMap.set(place.place_id, place);
@@ -225,6 +235,15 @@ class PlaceQueryBuilder {
225
235
  }
226
236
  let uniquePlaces = Array.from(allPlacesMap.values());
227
237
  uniquePlaces = uniquePlaces.filter((p) => (p.rating || 0) >= this._minRate);
238
+ if (this._excludedPrimaryTypes.length > 0) {
239
+ uniquePlaces = uniquePlaces.filter((p) => {
240
+ if (!p.types)
241
+ return true;
242
+ return !p.types.some((t) => this._excludedPrimaryTypes.includes(t));
243
+ });
244
+ if (this._showLogs)
245
+ console.log(`Filtered out places based on excluded types: ${this._excludedPrimaryTypes.join(", ")}`);
246
+ }
228
247
  if (this._limitCount && uniquePlaces.length > this._limitCount) {
229
248
  uniquePlaces = uniquePlaces.slice(0, this._limitCount);
230
249
  }
@@ -270,19 +289,20 @@ class NewPlaceQueryBuilder {
270
289
  _subRadius = 500;
271
290
  _minRate = 4.1;
272
291
  _limitCount;
273
- _type = "restaurant";
274
- _fields = ["name", "displayName", "id", "formattedAddress", "rating", "location"];
292
+ _types = [];
293
+ _fields = ["name", "displayName", "id", "formattedAddress", "rating", "location", "nationalPhoneNumber", "internationalPhoneNumber", "websiteUri", "googleMapsUri", "regularOpeningHours", "reservable", "parkingOptions", "priceLevel", "businessStatus", "utcOffsetMinutes", "userRatingCount", "types", "primaryType", "primaryTypeDisplayName"];
275
294
  _onFinished;
276
295
  _showLogs = false;
277
296
  _showProgress = false;
278
297
  _apiKey;
279
298
  _forceQueryClosedStores = false;
299
+ _excludedPrimaryTypes = [];
280
300
  constructor(location) {
281
301
  this._location = location;
282
302
  this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;
283
303
  }
284
- placesType(type) {
285
- this._type = type;
304
+ placesTypes(types) {
305
+ this._types = types;
286
306
  return this;
287
307
  }
288
308
  radius(radius) {
@@ -321,6 +341,10 @@ class NewPlaceQueryBuilder {
321
341
  this._forceQueryClosedStores = true;
322
342
  return this;
323
343
  }
344
+ excludedPrimaryTypes(types) {
345
+ this._excludedPrimaryTypes = types;
346
+ return this;
347
+ }
324
348
  async run() {
325
349
  if (!this._apiKey) {
326
350
  throw new Error("API Key is required.");
@@ -347,7 +371,7 @@ class NewPlaceQueryBuilder {
347
371
  for (const circle of subCircles) {
348
372
  if (this._showLogs)
349
373
  console.log(`Querying batch ${processedBatches + 1}/${totalBatches}...`);
350
- const places = await fetchNewPlaces(circle, this._subRadius, this._type, this._apiKey, this._fields, (count) => {}, this._forceQueryClosedStores);
374
+ const places = await fetchNewPlaces(circle, this._subRadius, this._types, this._apiKey, this._fields, (count) => {}, this._forceQueryClosedStores, this._excludedPrimaryTypes);
351
375
  for (const place of places) {
352
376
  if (place.id) {
353
377
  allPlacesMap.set(place.id, place);
@@ -416,4 +440,4 @@ export {
416
440
  NewPlaceQueryBuilder
417
441
  };
418
442
 
419
- //# debugId=3C7794424B032AD664756E2164756E21
443
+ //# debugId=76E2A899F11EDB4F64756E2164756E21
package/dist/index.js.map CHANGED
@@ -3,10 +3,10 @@
3
3
  "sources": ["../src/geometry.ts", "../src/api.ts", "../src/core.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Coordinate } from \"./types\";\n\n\n/**\n * Generates a list of coordinates for sub-circles that cover a larger circle.\n * Uses a hexagonal packing strategy to ensure coverage.\n * \n * @param center The center of the main search area.\n * @param radius The radius of the main search area in meters.\n * @param subRadius The radius of each sub-circle in meters (default 500m).\n * @returns Array of coordinates for the centers of the sub-circles.\n */\nexport function generateSubCircles(\n center: Coordinate,\n radius: number,\n subRadius: number = 500\n): Coordinate[] {\n // If the main radius is smaller than the subRadius, just return the center.\n if (radius <= subRadius) {\n return [center];\n }\n\n const coordinates: Coordinate[] = [];\n \n // Earth's radius in meters\n const R = 6371000;\n \n // Convert latitude to radians to calculate longitude offsets correctly\n const latRad = (center.latitude * Math.PI) / 180;\n \n // Distance between centers of hexagonally packed circles to ensure coverage.\n // Ideally, for r=subRadius, the distance should be approx r * sqrt(3) for tight packing without gaps,\n // but to be safe and ensure overlap (so we don't miss spots), we can use a slightly tighter spacing.\n // Using subRadius * 1.5 is a reasonable approximation for coverage with overlap.\n const step = subRadius * 1.5; \n\n // Simple grid or spiral generation could work, but let's do a bounding box scan\n // We scan a square area around the center and keep points within the radius.\n \n // Degrees per meter (approximate)\n const latDegPerMeter = 1 / 111320; \n const lonDegPerMeter = 1 / (111320 * Math.cos(latRad));\n\n const latStep = step * latDegPerMeter;\n const lonStep = step * lonDegPerMeter;\n\n // Calculate bounds\n const numSteps = Math.ceil(radius / step);\n \n for (let i = -numSteps; i <= numSteps; i++) {\n for (let j = -numSteps; j <= numSteps; j++) {\n // Offset based on hexagonal-like grid (shift every other row)\n const xOffset = j * lonStep + (i % 2 === 0 ? 0 : lonStep / 2);\n const yOffset = i * latStep * (Math.sqrt(3) / 2); // Hexagonal height factor\n\n // Calculate distance from center in meters (approx)\n const distX = xOffset / lonDegPerMeter;\n const distY = yOffset / latDegPerMeter;\n const distance = Math.sqrt(distX * distX + distY * distY);\n\n // We include the circle if its center is within (ParentRadius + epsilon) \n // or if it covers any part of the parent circle. \n // Being generous: if distance - subRadius < radius\n if (distance - subRadius < radius) {\n coordinates.push({\n latitude: center.latitude + yOffset,\n longitude: center.longitude + xOffset\n });\n }\n }\n }\n\n return coordinates;\n}\n",
6
- "import { Coordinate, MapsPlaceResult, PlaceResult } from \"./types\";\n\n/**\n * Fetches places using the Legacy Google Places API (Nearby Search).\n * Matches the original behavior of this library.\n */\nexport async function fetchLegacyPlaces(\n location: Coordinate,\n radius: number,\n type: string,\n apiKey: string,\n onProgress?: (count: number) => void,\n allowClosedStores: boolean = false\n): Promise<MapsPlaceResult[]> {\n const allPlaces: MapsPlaceResult[] = [];\n const maxPages = 3;\n \n const url = new URL(\n \"https://maps.googleapis.com/maps/api/place/nearbysearch/json\"\n );\n url.searchParams.append(\"location\", `${location.latitude},${location.longitude}`);\n url.searchParams.append(\"radius\", radius.toString());\n url.searchParams.append(\"type\", type);\n // Important: Google Places API does not support explicit pagination by page number,\n // only by next_page_token.\n url.searchParams.append(\"key\", apiKey);\n\n let nextPageToken: string | undefined = undefined;\n\n for (let i = 0; i < maxPages; i++) {\n if (i > 0 && !nextPageToken) {\n break;\n }\n\n const currentUrl = new URL(url.toString());\n if (nextPageToken) {\n currentUrl.searchParams.append(\"pagetoken\", nextPageToken);\n // Determine if we need to wait.\n // Google requires a short delay before the next_page_token becomes valid.\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n try {\n const response = await fetch(currentUrl.toString());\n const data = await response.json();\n\n if (data.status !== \"OK\" && data.status !== \"ZERO_RESULTS\") {\n console.error(\"Google Places API error:\", data.status, data.error_message);\n break;\n }\n\n if (data.results) {\n let activePlaces: MapsPlaceResult[] = [];\n if (!allowClosedStores) {\n activePlaces = (data.results as MapsPlaceResult[]).filter(\n (place) => place.business_status !== \"CLOSED_TEMPORARILY\"\n );\n } else {\n activePlaces = data.results as MapsPlaceResult[];\n }\n \n allPlaces.push(...activePlaces);\n\n if (onProgress) {\n onProgress(activePlaces.length);\n }\n }\n\n nextPageToken = data.next_page_token;\n } catch (error) {\n console.error(\"Network error fetching places:\", error);\n break;\n }\n }\n\n return allPlaces;\n}\n\n/**\n * Fetches places using the New Google Places API (v1).\n * Allows specifying fields to retrieve.\n */\nexport async function fetchNewPlaces(\n location: Coordinate,\n radius: number,\n type: string,\n apiKey: string,\n fields: string[],\n onProgress?: (count: number) => void,\n allowClosedStores: boolean = false\n): Promise<PlaceResult[]> {\n const allPlaces: PlaceResult[] = [];\n \n const url = \"https://places.googleapis.com/v1/places:searchNearby\";\n\n // Ensure fields are properly formatted (prefixed with 'places.')\n const formattedFields = fields.map(f => f.startsWith(\"places.\") ? f : `places.${f}`).join(\",\");\n \n // Implementation for single call:\n const requestBody = {\n locationRestriction: {\n circle: {\n center: {\n latitude: location.latitude,\n longitude: location.longitude,\n },\n radius: radius,\n },\n },\n includedTypes: [type], \n maxResultCount: 20\n };\n\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Goog-Api-Key\": apiKey,\n \"X-Goog-FieldMask\": formattedFields,\n },\n body: JSON.stringify(requestBody),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n console.error(\"Google Places API error:\", data.error?.message || data.error || data);\n return [];\n }\n\n if (data.places) {\n let activePlaces: PlaceResult[] = [];\n // Filter closed stores if needed.\n if (!allowClosedStores) {\n activePlaces = (data.places as PlaceResult[]).filter(\n (place) => place.businessStatus !== \"CLOSED_TEMPORARILY\" && place.businessStatus !== \"CLOSED_PERMANENTLY\"\n );\n } else {\n activePlaces = data.places as PlaceResult[];\n }\n\n allPlaces.push(...activePlaces);\n\n if (onProgress) {\n onProgress(activePlaces.length);\n }\n }\n } catch (error) {\n console.error(\"Network error fetching places:\", error);\n }\n \n return allPlaces;\n}\n",
7
- "import { generateSubCircles } from \"./geometry\";\nimport { fetchLegacyPlaces, fetchNewPlaces } from \"./api\";\nimport { writeFileSync } from \"fs\";\nimport { Coordinate, MapsPlaceResult, NearbySearchAttributes, PlaceResult } from \"./types\";\n\ntype OutputFormat = \"csv\" | \"json\" | ((places: MapsPlaceResult[]) => void);\ntype NewOutputFormat = \"csv\" | \"json\" | ((places: PlaceResult[]) => void);\n\n/**\n * Legacy Query Builder using the original Maps API (Nearby Search).\n */\nexport class PlaceQueryBuilder {\n private _location: Coordinate;\n private _radius: number = 4000; // Default 4km\n private _subRadius: number = 500; // Default 500m\n private _minRate: number = 4.1;\n private _limitCount: number | undefined;\n private _type: string = \"restaurant\";\n private _onFinished?: OutputFormat;\n private _showLogs: boolean = false;\n private _showProgress: boolean = false;\n private _apiKey: string | undefined;\n private _forceQueryClosedStores: boolean = false;\n\n constructor(location: Coordinate) {\n this._location = location;\n // Try to load API Key from env if available (Bun loads .env automatically)\n this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;\n }\n\n public placesType(type: string): this {\n this._type = type;\n return this;\n }\n\n public radius(radius: number): this {\n this._radius = radius;\n return this;\n }\n\n public minRate(rate: number): this {\n this._minRate = rate;\n return this;\n }\n\n public limit(max: number): this {\n this._limitCount = max;\n return this;\n }\n\n public apiKey(key: string): this {\n this._apiKey = key;\n return this;\n }\n\n public onFinished(format: OutputFormat): this {\n this._onFinished = format;\n return this;\n }\n\n public showLogs(): this {\n this._showLogs = true;\n return this;\n }\n\n public showProgress(): this {\n this._showProgress = true;\n return this;\n }\n\n public allowClosedStores(): this {\n this._forceQueryClosedStores = true;\n return this;\n }\n\n public async run(): Promise<void> {\n if (!this._apiKey) {\n throw new Error(\"API Key is required. Set it via .apiKey() or NEXT_PUBLIC_GOOGLE_MAPS_API_KEY env var.\");\n }\n if (!this._onFinished) {\n throw new Error(\"onFinished callback or format is required.\");\n }\n\n if (this._showLogs) console.log(\"Starting Google Places (Legacy) query...\");\n\n // 1. Generate sub-circles\n let subCircles = generateSubCircles(this._location, this._radius, this._subRadius);\n \n // Optimization: If limit is set, reduce the number of batches\n if (this._limitCount) {\n const maxBatches = Math.ceil(this._limitCount / 60);\n if (subCircles.length > maxBatches) {\n // Shuffle array to get random circles\n for (let i = subCircles.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [subCircles[i], subCircles[j]] = [subCircles[j], subCircles[i]];\n }\n // Slice to the max needed matches\n subCircles = subCircles.slice(0, maxBatches);\n if (this._showLogs) console.log(`Optimization: Limiting to ${maxBatches} batches based on limit of ${this._limitCount}`);\n }\n }\n\n const totalBatches = subCircles.length;\n const allPlacesMap = new Map<string, MapsPlaceResult>();\n let processedBatches = 0;\n \n for (const circle of subCircles) {\n if (this._showLogs) console.log(`Querying batch ${processedBatches + 1}/${totalBatches} at ${circle.latitude}, ${circle.longitude}...`);\n \n const places = await fetchLegacyPlaces(\n circle, \n this._subRadius, \n this._type, \n this._apiKey,\n (count) => {},\n this._forceQueryClosedStores\n );\n\n for (const place of places) {\n if (place.place_id) {\n allPlacesMap.set(place.place_id, place);\n }\n }\n\n processedBatches++;\n \n if (this._showProgress) {\n const percentage = ((processedBatches / totalBatches) * 100).toFixed(1);\n console.log(`Progress: ${percentage}% (${processedBatches}/${totalBatches} batches)`);\n }\n\n await new Promise(r => setTimeout(r, 200)); \n if(processedBatches % 20 === 0) {\n await new Promise(r => setTimeout(r, 2000));\n }\n }\n\n let uniquePlaces = Array.from(allPlacesMap.values());\n \n // Filter by minRate\n uniquePlaces = uniquePlaces.filter(p => (p.rating || 0) >= this._minRate);\n\n // Apply limit\n if (this._limitCount && uniquePlaces.length > this._limitCount) {\n uniquePlaces = uniquePlaces.slice(0, this._limitCount);\n }\n if (this._showLogs) console.log(`Finished! Found ${uniquePlaces.length} unique places.`);\n\n this.handleOutput(uniquePlaces);\n }\n\n private handleOutput(places: MapsPlaceResult[]) {\n if (typeof this._onFinished === \"function\") {\n this._onFinished(places);\n } else if (this._onFinished === \"json\") {\n const jsonContent = JSON.stringify(places, null, 2);\n writeFileSync(\"maps_places_output.json\", jsonContent);\n if (this._showLogs) console.log(\"Saved results to maps_places_output.json\");\n } else if (this._onFinished === \"csv\") {\n const headers = [\"name\", \"address\", \"rating\", \"user_ratings_total\", \"place_id\", \"lat\", \"lng\"];\n const csvContent = [\n headers.join(\",\"),\n ...places.map(p => {\n return [\n `\"${(p.name || \"\").replace(/\"/g, '\"\"')}\"`,\n `\"${(p.formatted_address || \"\").replace(/\"/g, '\"\"')}\"`,\n p.rating || \"\",\n p.user_ratings_total || \"\",\n p.place_id,\n p.geometry?.location?.lat || \"\",\n p.geometry?.location?.lng || \"\"\n ].join(\",\")\n })\n ].join(\"\\n\");\n writeFileSync(\"maps_places_output.csv\", csvContent);\n if (this._showLogs) console.log(\"Saved results to maps_places_output.csv\");\n }\n }\n}\n\n/**\n * New Places API Query Builder (v1).\n */\nexport class NewPlaceQueryBuilder {\n private _location: Coordinate;\n private _radius: number = 4000;\n private _subRadius: number = 500; \n private _minRate: number = 4.1;\n private _limitCount: number | undefined;\n private _type: string = \"restaurant\";\n private _fields: NearbySearchAttributes[] = [\"name\", \"displayName\", \"id\", \"formattedAddress\", \"rating\", \"location\"]; // Defaults\n private _onFinished?: NewOutputFormat;\n private _showLogs: boolean = false;\n private _showProgress: boolean = false;\n private _apiKey: string | undefined;\n private _forceQueryClosedStores: boolean = false;\n\n constructor(location: Coordinate) {\n this._location = location;\n this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;\n }\n\n public placesType(type: string): this {\n this._type = type;\n return this;\n }\n\n public radius(radius: number): this {\n this._radius = radius;\n return this;\n }\n\n public minRate(rate: number): this {\n this._minRate = rate;\n return this;\n }\n\n public limit(max: number): this {\n this._limitCount = max;\n return this;\n }\n\n public apiKey(key: string): this {\n this._apiKey = key;\n return this;\n }\n\n /**\n * Specifies fields to return from the New Places API.\n * e.g. [\"displayName\", \"rating\", \"formattedAddress\"]\n */\n public fields(fields: NearbySearchAttributes[]): this {\n this._fields = [...this._fields, ...fields];\n return this;\n }\n\n public onFinished(format: NewOutputFormat): this {\n this._onFinished = format;\n return this;\n }\n\n public showLogs(): this {\n this._showLogs = true;\n return this;\n }\n\n public showProgress(): this {\n this._showProgress = true;\n return this;\n }\n\n public allowClosedStores(): this {\n this._forceQueryClosedStores = true;\n return this;\n }\n\n public async run(): Promise<void> {\n if (!this._apiKey) {\n throw new Error(\"API Key is required.\");\n }\n if (!this._onFinished) {\n throw new Error(\"onFinished callback or format is required.\");\n }\n\n if (this._showLogs) console.log(\"Starting Google Places (New) query...\");\n\n let subCircles = generateSubCircles(this._location, this._radius, this._subRadius);\n \n // Same optimization logic\n if (this._limitCount) {\n const maxBatches = Math.ceil(this._limitCount / 20); // Note: New API limit is 20 per call\n if (subCircles.length > maxBatches) {\n for (let i = subCircles.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [subCircles[i], subCircles[j]] = [subCircles[j], subCircles[i]];\n }\n subCircles = subCircles.slice(0, maxBatches);\n }\n }\n\n const totalBatches = subCircles.length;\n const allPlacesMap = new Map<string, PlaceResult>();\n let processedBatches = 0;\n \n for (const circle of subCircles) {\n if (this._showLogs) console.log(`Querying batch ${processedBatches + 1}/${totalBatches}...`);\n \n const places = await fetchNewPlaces(\n circle, \n this._subRadius, \n this._type, \n this._apiKey,\n this._fields,\n (count) => {},\n this._forceQueryClosedStores\n );\n\n for (const place of places) {\n if (place.id) {\n allPlacesMap.set(place.id, place);\n }\n }\n\n processedBatches++;\n \n if (this._showProgress) {\n const percentage = ((processedBatches / totalBatches) * 100).toFixed(1);\n console.log(`Progress: ${percentage}%`);\n }\n\n await new Promise(r => setTimeout(r, 200)); \n if(processedBatches % 20 === 0) {\n await new Promise(r => setTimeout(r, 2000));\n }\n }\n\n let uniquePlaces = Array.from(allPlacesMap.values());\n uniquePlaces = uniquePlaces.filter(p => (p.rating || 0) >= this._minRate);\n\n if (this._limitCount && uniquePlaces.length > this._limitCount) {\n uniquePlaces = uniquePlaces.slice(0, this._limitCount);\n }\n if (this._showLogs) console.log(`Finished! Found ${uniquePlaces.length} unique places.`);\n\n this.handleOutput(uniquePlaces);\n }\n\n private handleOutput(places: PlaceResult[]) {\n if (typeof this._onFinished === \"function\") {\n this._onFinished(places);\n } else if (this._onFinished === \"json\") {\n const jsonContent = JSON.stringify(places, null, 2);\n writeFileSync(\"places_output.json\", jsonContent);\n if (this._showLogs) console.log(\"Saved results to places_output.json\");\n } else if (this._onFinished === \"csv\") {\n const headers = [\"id\", \"rating\", \"formattedAddress\", \"displayName\"];\n const csvContent = [\n headers.join(\",\"),\n ...places.map(p => {\n return [\n p.id,\n p.rating || \"\",\n `\"${(p.formattedAddress || \"\").replace(/\"/g, '\"\"')}\"`,\n `\"${(p.displayName?.text || p.name || \"\").replace(/\"/g, '\"\"')}\"`\n ].join(\",\")\n })\n ].join(\"\\n\");\n writeFileSync(\"places_output.csv\", csvContent);\n if (this._showLogs) console.log(\"Saved results to places_output.csv\");\n }\n }\n}\n\nexport function getLegacyGooglePlaces(location: Coordinate) {\n return new PlaceQueryBuilder(location);\n}\n\nexport function getGooglePlaces(location: Coordinate) {\n return new NewPlaceQueryBuilder(location);\n}\n"
6
+ "import { Coordinate, MapsPlaceResult, PlaceResult } from \"./types\";\n\n/**\n * Fetches places using the Legacy Google Places API (Nearby Search).\n * Matches the original behavior of this library.\n */\nexport async function fetchLegacyPlaces(\n location: Coordinate,\n radius: number,\n types: string[],\n apiKey: string,\n onProgress?: (count: number) => void,\n allowClosedStores: boolean = false\n): Promise<MapsPlaceResult[]> {\n const allPlaces: MapsPlaceResult[] = [];\n const maxPages = 3;\n \n const url = new URL(\n \"https://maps.googleapis.com/maps/api/place/nearbysearch/json\"\n );\n url.searchParams.append(\"location\", `${location.latitude},${location.longitude}`);\n url.searchParams.append(\"radius\", radius.toString());\n for (const type of types) {\n url.searchParams.append(\"type\", type);\n }\n // Important: Google Places API does not support explicit pagination by page number,\n // only by next_page_token.\n url.searchParams.append(\"key\", apiKey);\n\n let nextPageToken: string | undefined = undefined;\n\n for (let i = 0; i < maxPages; i++) {\n if (i > 0 && !nextPageToken) {\n break;\n }\n\n const currentUrl = new URL(url.toString());\n if (nextPageToken) {\n currentUrl.searchParams.append(\"pagetoken\", nextPageToken);\n // Determine if we need to wait.\n // Google requires a short delay before the next_page_token becomes valid.\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n try {\n const response = await fetch(currentUrl.toString());\n const data = await response.json();\n\n if (data.status !== \"OK\" && data.status !== \"ZERO_RESULTS\") {\n console.error(\"Google Places API error:\", data.status, data.error_message);\n break;\n }\n\n if (data.results) {\n let activePlaces: MapsPlaceResult[] = [];\n if (!allowClosedStores) {\n activePlaces = (data.results as MapsPlaceResult[]).filter(\n (place) => place.business_status !== \"CLOSED_TEMPORARILY\"\n );\n } else {\n activePlaces = data.results as MapsPlaceResult[];\n }\n \n allPlaces.push(...activePlaces);\n\n if (onProgress) {\n onProgress(activePlaces.length);\n }\n }\n\n nextPageToken = data.next_page_token;\n } catch (error) {\n console.error(\"Network error fetching places:\", error);\n break;\n }\n }\n\n return allPlaces;\n}\n\n/**\n * Fetches places using the New Google Places API (v1).\n * Allows specifying fields to retrieve.\n */\nexport async function fetchNewPlaces(\n location: Coordinate,\n radius: number,\n types: string[],\n apiKey: string,\n fields: string[],\n onProgress?: (count: number) => void,\n allowClosedStores: boolean = false,\n excludedPrimaryTypes: string[] = []\n): Promise<PlaceResult[]> {\n const allPlaces: PlaceResult[] = [];\n \n const url = \"https://places.googleapis.com/v1/places:searchNearby\";\n\n // Ensure fields are properly formatted (prefixed with 'places.')\n const formattedFields = fields.map(f => f.startsWith(\"places.\") ? f : `places.${f}`).join(\",\");\n \n // Implementation for single call:\n const requestBody: any = {\n locationRestriction: {\n circle: {\n center: {\n latitude: location.latitude,\n longitude: location.longitude,\n },\n radius: radius,\n },\n },\n includedTypes: types,\n maxResultCount: 20\n };\n\n if (excludedPrimaryTypes.length > 0) {\n requestBody.excludedPrimaryTypes = excludedPrimaryTypes;\n }\n\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Goog-Api-Key\": apiKey,\n \"X-Goog-FieldMask\": formattedFields,\n },\n body: JSON.stringify(requestBody),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n console.error(\"Google Places API error:\", data.error?.message || data.error || data);\n return [];\n }\n\n if (data.places) {\n let activePlaces: PlaceResult[] = [];\n // Filter closed stores if needed.\n if (!allowClosedStores) {\n activePlaces = (data.places as PlaceResult[]).filter(\n (place) => place.businessStatus !== \"CLOSED_TEMPORARILY\" && place.businessStatus !== \"CLOSED_PERMANENTLY\"\n );\n } else {\n activePlaces = data.places as PlaceResult[];\n }\n\n allPlaces.push(...activePlaces);\n\n if (onProgress) {\n onProgress(activePlaces.length);\n }\n }\n } catch (error) {\n console.error(\"Network error fetching places:\", error);\n }\n \n return allPlaces;\n}\n",
7
+ "import { generateSubCircles } from \"./geometry\";\nimport { fetchLegacyPlaces, fetchNewPlaces } from \"./api\";\nimport { writeFileSync } from \"fs\";\nimport { Coordinate, MapsPlaceResult, NearbySearchAttributes, PlaceResult } from \"./types\";\n\ntype OutputFormat = \"csv\" | \"json\" | ((places: MapsPlaceResult[]) => void);\ntype NewOutputFormat = \"csv\" | \"json\" | ((places: PlaceResult[]) => void);\n\n/**\n * Legacy Query Builder using the original Maps API (Nearby Search).\n */\nexport class PlaceQueryBuilder {\n private _location: Coordinate;\n private _radius: number = 4000; // Default 4km\n private _subRadius: number = 500; // Default 500m\n private _minRate: number = 4.1;\n private _limitCount: number | undefined;\n /**\n * The types of places to search for.\n * See [the API documentation](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)\n * @example [\"bar\", \"pub\", \"restaurant\", \"cafe\"]\n */\n private _types: string[] = [];\n private _onFinished?: OutputFormat;\n private _showLogs: boolean = false;\n private _showProgress: boolean = false;\n private _apiKey: string | undefined;\n\n private _forceQueryClosedStores: boolean = false;\n private _excludedPrimaryTypes: string[] = [];\n\n constructor(location: Coordinate) {\n this._location = location;\n // Try to load API Key from env if available (Bun loads .env automatically)\n this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;\n }\n\n public placesTypes(types: string[]): this {\n this._types = types;\n return this;\n }\n\n public radius(radius: number): this {\n this._radius = radius;\n return this;\n }\n\n public minRate(rate: number): this {\n this._minRate = rate;\n return this;\n }\n\n public limit(max: number): this {\n this._limitCount = max;\n return this;\n }\n\n public apiKey(key: string): this {\n this._apiKey = key;\n return this;\n }\n\n public onFinished(format: OutputFormat): this {\n this._onFinished = format;\n return this;\n }\n\n public showLogs(): this {\n this._showLogs = true;\n return this;\n }\n\n public showProgress(): this {\n this._showProgress = true;\n return this;\n }\n\n public allowClosedStores(): this {\n this._forceQueryClosedStores = true;\n return this;\n }\n\n public excludedPrimaryTypes(types: string[]): this {\n this._excludedPrimaryTypes = types;\n return this;\n }\n\n public async run(): Promise<void> {\n if (!this._apiKey) {\n throw new Error(\"API Key is required. Set it via .apiKey() or NEXT_PUBLIC_GOOGLE_MAPS_API_KEY env var.\");\n }\n if (!this._onFinished) {\n throw new Error(\"onFinished callback or format is required.\");\n }\n\n if (this._showLogs) console.log(\"Starting Google Places (Legacy) query...\");\n\n // 1. Generate sub-circles\n let subCircles = generateSubCircles(this._location, this._radius, this._subRadius);\n \n // Optimization: If limit is set, reduce the number of batches\n if (this._limitCount) {\n const maxBatches = Math.ceil(this._limitCount / 60);\n if (subCircles.length > maxBatches) {\n // Shuffle array to get random circles\n for (let i = subCircles.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [subCircles[i], subCircles[j]] = [subCircles[j], subCircles[i]];\n }\n // Slice to the max needed matches\n subCircles = subCircles.slice(0, maxBatches);\n if (this._showLogs) console.log(`Optimization: Limiting to ${maxBatches} batches based on limit of ${this._limitCount}`);\n }\n }\n\n const totalBatches = subCircles.length;\n const allPlacesMap = new Map<string, MapsPlaceResult>();\n let processedBatches = 0;\n \n for (const circle of subCircles) {\n if (this._showLogs) console.log(`Querying batch ${processedBatches + 1}/${totalBatches} at ${circle.latitude}, ${circle.longitude}...`);\n \n const places = await fetchLegacyPlaces(\n circle, \n this._subRadius, \n this._types, \n this._apiKey,\n (count) => {},\n this._forceQueryClosedStores\n );\n\n for (const place of places) {\n if (place.place_id) {\n allPlacesMap.set(place.place_id, place);\n }\n }\n\n processedBatches++;\n \n if (this._showProgress) {\n const percentage = ((processedBatches / totalBatches) * 100).toFixed(1);\n console.log(`Progress: ${percentage}% (${processedBatches}/${totalBatches} batches)`);\n }\n\n await new Promise(r => setTimeout(r, 200)); \n if(processedBatches % 20 === 0) {\n await new Promise(r => setTimeout(r, 2000));\n }\n }\n\n let uniquePlaces = Array.from(allPlacesMap.values());\n \n // Filter by minRate\n uniquePlaces = uniquePlaces.filter(p => (p.rating || 0) >= this._minRate);\n\n // Filter by excludedPrimaryTypes (Client-side for Legacy API)\n if (this._excludedPrimaryTypes.length > 0) {\n uniquePlaces = uniquePlaces.filter(p => {\n if (!p.types) return true;\n // If any of the place's types are in the excluded list, filter it out.\n // Legacy API types are an array of strings.\n return !p.types.some(t => this._excludedPrimaryTypes.includes(t));\n });\n if (this._showLogs) console.log(`Filtered out places based on excluded types: ${this._excludedPrimaryTypes.join(\", \")}`);\n }\n\n // Apply limit\n if (this._limitCount && uniquePlaces.length > this._limitCount) {\n uniquePlaces = uniquePlaces.slice(0, this._limitCount);\n }\n if (this._showLogs) console.log(`Finished! Found ${uniquePlaces.length} unique places.`);\n\n this.handleOutput(uniquePlaces);\n }\n\n private handleOutput(places: MapsPlaceResult[]) {\n if (typeof this._onFinished === \"function\") {\n this._onFinished(places);\n } else if (this._onFinished === \"json\") {\n const jsonContent = JSON.stringify(places, null, 2);\n writeFileSync(\"maps_places_output.json\", jsonContent);\n if (this._showLogs) console.log(\"Saved results to maps_places_output.json\");\n } else if (this._onFinished === \"csv\") {\n const headers = [\"name\", \"address\", \"rating\", \"user_ratings_total\", \"place_id\", \"lat\", \"lng\"];\n const csvContent = [\n headers.join(\",\"),\n ...places.map(p => {\n return [\n `\"${(p.name || \"\").replace(/\"/g, '\"\"')}\"`,\n `\"${(p.formatted_address || \"\").replace(/\"/g, '\"\"')}\"`,\n p.rating || \"\",\n p.user_ratings_total || \"\",\n p.place_id,\n p.geometry?.location?.lat || \"\",\n p.geometry?.location?.lng || \"\"\n ].join(\",\")\n })\n ].join(\"\\n\");\n writeFileSync(\"maps_places_output.csv\", csvContent);\n if (this._showLogs) console.log(\"Saved results to maps_places_output.csv\");\n }\n }\n}\n\n/**\n * New Places API Query Builder (v1).\n */\nexport class NewPlaceQueryBuilder {\n private _location: Coordinate;\n private _radius: number = 4000;\n private _subRadius: number = 500; \n private _minRate: number = 4.1;\n private _limitCount: number | undefined;\n /**\n * The types of places to search for.\n * See [the API documentation](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)\n * @example [\"bar\", \"pub\", \"restaurant\", \"cafe\"]\n */\n private _types: string[] = [];\n private _fields: NearbySearchAttributes[] = [\"name\", \"displayName\", \"id\", \"formattedAddress\", \"rating\", \"location\", \"nationalPhoneNumber\", \"internationalPhoneNumber\", \"websiteUri\", \"googleMapsUri\", \"regularOpeningHours\", \"reservable\", \"parkingOptions\", \"priceLevel\", \"businessStatus\", \"utcOffsetMinutes\", \"userRatingCount\", \"types\", \"primaryType\", \"primaryTypeDisplayName\"]; // Defaults\n private _onFinished?: NewOutputFormat;\n private _showLogs: boolean = false;\n private _showProgress: boolean = false;\n private _apiKey: string | undefined;\n\n private _forceQueryClosedStores: boolean = false;\n private _excludedPrimaryTypes: string[] = [];\n\n constructor(location: Coordinate) {\n this._location = location;\n this._apiKey = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY;\n }\n\n public placesTypes(types: string[]): this {\n this._types = types;\n return this;\n }\n\n public radius(radius: number): this {\n this._radius = radius;\n return this;\n }\n\n public minRate(rate: number): this {\n this._minRate = rate;\n return this;\n }\n\n public limit(max: number): this {\n this._limitCount = max;\n return this;\n }\n\n public apiKey(key: string): this {\n this._apiKey = key;\n return this;\n }\n\n /**\n * Specifies fields to return from the New Places API.\n * e.g. [\"displayName\", \"rating\", \"formattedAddress\"]\n */\n public fields(fields: NearbySearchAttributes[]): this {\n this._fields = [...this._fields, ...fields];\n return this;\n }\n\n public onFinished(format: NewOutputFormat): this {\n this._onFinished = format;\n return this;\n }\n\n public showLogs(): this {\n this._showLogs = true;\n return this;\n }\n\n public showProgress(): this {\n this._showProgress = true;\n return this;\n }\n\n public allowClosedStores(): this {\n this._forceQueryClosedStores = true;\n return this;\n }\n\n /**\n * Some of the types includes `chinese_restaurant`, `japanese_restaurant`, `italian_restaurant`, etc.\n * \n * You can see the types [here](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)\n * @param types \n * @returns \n */\n public excludedPrimaryTypes(types: string[]): this {\n this._excludedPrimaryTypes = types;\n return this;\n }\n\n public async run(): Promise<void> {\n if (!this._apiKey) {\n throw new Error(\"API Key is required.\");\n }\n if (!this._onFinished) {\n throw new Error(\"onFinished callback or format is required.\");\n }\n\n if (this._showLogs) console.log(\"Starting Google Places (New) query...\");\n\n let subCircles = generateSubCircles(this._location, this._radius, this._subRadius);\n \n // Same optimization logic\n if (this._limitCount) {\n const maxBatches = Math.ceil(this._limitCount / 20); // Note: New API limit is 20 per call\n if (subCircles.length > maxBatches) {\n for (let i = subCircles.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [subCircles[i], subCircles[j]] = [subCircles[j], subCircles[i]];\n }\n subCircles = subCircles.slice(0, maxBatches);\n }\n }\n\n const totalBatches = subCircles.length;\n const allPlacesMap = new Map<string, PlaceResult>();\n let processedBatches = 0;\n \n for (const circle of subCircles) {\n if (this._showLogs) console.log(`Querying batch ${processedBatches + 1}/${totalBatches}...`);\n \n const places = await fetchNewPlaces(\n circle, \n this._subRadius, \n this._types,\n this._apiKey,\n this._fields,\n (count) => {},\n this._forceQueryClosedStores,\n this._excludedPrimaryTypes\n );\n\n for (const place of places) {\n if (place.id) {\n allPlacesMap.set(place.id, place);\n }\n }\n\n processedBatches++;\n \n if (this._showProgress) {\n const percentage = ((processedBatches / totalBatches) * 100).toFixed(1);\n console.log(`Progress: ${percentage}%`);\n }\n\n await new Promise(r => setTimeout(r, 200)); \n if(processedBatches % 20 === 0) {\n await new Promise(r => setTimeout(r, 2000));\n }\n }\n\n let uniquePlaces = Array.from(allPlacesMap.values());\n uniquePlaces = uniquePlaces.filter(p => (p.rating || 0) >= this._minRate);\n\n if (this._limitCount && uniquePlaces.length > this._limitCount) {\n uniquePlaces = uniquePlaces.slice(0, this._limitCount);\n }\n if (this._showLogs) console.log(`Finished! Found ${uniquePlaces.length} unique places.`);\n\n this.handleOutput(uniquePlaces);\n }\n\n private handleOutput(places: PlaceResult[]) {\n if (typeof this._onFinished === \"function\") {\n this._onFinished(places);\n } else if (this._onFinished === \"json\") {\n const jsonContent = JSON.stringify(places, null, 2);\n writeFileSync(\"places_output.json\", jsonContent);\n if (this._showLogs) console.log(\"Saved results to places_output.json\");\n } else if (this._onFinished === \"csv\") {\n const headers = [\"id\", \"rating\", \"formattedAddress\", \"displayName\"];\n const csvContent = [\n headers.join(\",\"),\n ...places.map(p => {\n return [\n p.id,\n p.rating || \"\",\n `\"${(p.formattedAddress || \"\").replace(/\"/g, '\"\"')}\"`,\n `\"${(p.displayName?.text || p.name || \"\").replace(/\"/g, '\"\"')}\"`\n ].join(\",\")\n })\n ].join(\"\\n\");\n writeFileSync(\"places_output.csv\", csvContent);\n if (this._showLogs) console.log(\"Saved results to places_output.csv\");\n }\n }\n}\n\nexport function getLegacyGooglePlaces(location: Coordinate) {\n return new PlaceQueryBuilder(location);\n}\n\nexport function getGooglePlaces(location: Coordinate) {\n return new NewPlaceQueryBuilder(location);\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "3C7794424B032AD664756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "76E2A899F11EDB4F64756E2164756E21",
11
11
  "names": []
12
12
  }
package/dist/types.d.ts CHANGED
@@ -81,6 +81,8 @@ export interface PlaceResult {
81
81
  nationalPhoneNumber?: string;
82
82
  internationalPhoneNumber?: string;
83
83
  formattedAddress?: string;
84
+ primaryType?: string;
85
+ primaryTypeDisplayName?: string;
84
86
  addressComponents?: Array<{
85
87
  longText: string;
86
88
  shortText: string;
@@ -140,7 +142,6 @@ export interface PlaceResult {
140
142
  businessStatus?: string;
141
143
  reservable?: boolean;
142
144
  parkingOptions?: string[];
143
- googleMapsLinks?: string[];
144
145
  }
145
146
  /**
146
147
  * The following fields trigger the [Nearby Search Pro SKU](https://developers.google.com/maps/billing-and-pricing/sku-details#nearbysearch-pro-sku):
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-google-places",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Query Google Places API with automatic area subdivision to maximize results.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",